我有一些按年份編制的體育比賽,每場比賽我都有最終結果,比賽日期和得分手。展開數據的可展開UITableView單元格
我展示這些比賽在「表視圖」,像這樣:
所以想什麼,我實現的是:在一個小區,當點擊,顯示比賽細節如圖所示。
我也發現了一些圖書館來實現手風琴/可擴展的風格,但沒有人做這項工作。他們只是展開細胞並展示另一個細胞。
我有一些按年份編制的體育比賽,每場比賽我都有最終結果,比賽日期和得分手。展開數據的可展開UITableView單元格
我展示這些比賽在「表視圖」,像這樣:
所以想什麼,我實現的是:在一個小區,當點擊,顯示比賽細節如圖所示。
我也發現了一些圖書館來實現手風琴/可擴展的風格,但沒有人做這項工作。他們只是展開細胞並展示另一個細胞。
在這種情況下,您甚至不需要使用可擴展/手風琴。這是你如何解決這個問題。讓我們說,你的細胞大小時正常爲40,並點擊尤其是當是100 heightForRowAtIndexPath可以檢查選擇了哪個小區和返回更高度
if(selectedRow == indexPath.row) {
return 100;
} else {
return 40;
}
然後,你可以做的是在didSelectRowAtIndexPath方法或clickEvent方法
[self.tableView beginUpdates];
[[self tableView] reloadRowsAtIndexPaths:@[[NSIndexPath indexPathForItem: selectedRow inSection:0]] withRowAnimation:UITableViewRowAnimationAutomatic];
[self.tableView endUpdates];
因此,您的手機將會呈現所有內容,但基於您隱藏或顯示內容的高度。
與更新答案輸入源
ViewController.m
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
if(selectedIndex == indexPath.row)
return 100;
else
return 40;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
customCell *cell = (UITableViewCell*)[tableView dequeueReusableCellWithIdentifier:@"Cell"];
NSDictionary *matches = self.dataArray[indexPath.row];
cell.matchName.text = [matches [email protected]"MatchName"];
if() {
cell.heightConstraintSecondView.constant = 0;
} else {
cell.heightConstraintSecondView.constant = 59;
cell.team1.text = [matches [email protected]"Team1"];
cell.team2.text = [matches [email protected]"Team2"];
cell.score.text = [matches [email protected]"Score"];
}
return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
selectedIndex = indexPath.row;
[self.tableView beginUpdates];
[[self tableView] reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
[self.tableView endUpdates];
}
}
不錯!那麼我應該在哪裏添加匹配信息? (比如'team1 [selected_cell],team2 [selected_cell]'等等?在'beginupdates'和'endUpdates'之間? – fabersky
你只需要重新加載選中的單元格並在heightforRow中改變它的高度......你是否在動態創建你的單元格?你需要用所有元素創建你的單元格,只需在取消選擇時更改其高度以顯示或隱藏匹配詳細信息 –
我已將所有匹配詳細信息保存在數組中,因此基本上所有單元格都是相同的當我選擇單元格1時,它會顯示細胞的細節(匹配),當我選擇cell2時它會顯示match2細節,等等...... – fabersky
的清潔方法是創建2個細胞不同的標識符,並在運行時更改它,當您單擊該單元格。檢查這個問題:Drop-Down List in UITableView in iOS
可以用戶HVtableview爲此,試試這個鏈接 https://github.com/xerxes235/HVTableView
嘗試其中之一:
解決此問題的其他方法http://stackoverflow.com/questions/29678471/expandi ng-and-collapsing-uitableviewcells-with-datepicker/34703276#34703276 – DogCoffee
非常有幫助!感謝@DogCoffee! – fabersky
[iOS中的UITableView中的下拉列表]的可能重複(http://stackoverflow.com/questions/33186659/drop-down-list-in-uitableview-in-ios) – Rick