我有一个UIView需要显示两个UITableViews,但它们永远不会一起显示,使用SegementedBar你可以切换一个或另一个.
处理这个问题的最佳方法是什么?只需创建一个Table View Controller并更改数据源,或创建2 Table View Controllers,只需在另一个可见时隐藏一个.
这两个表将具有完全不同的布局,具有不同的自定义单元格.
Dam*_*amo 48
我会保留一个数据源和委托.
这意味着所有委托/数据源方法变得更加复杂,但这意味着您可以保持viewController和view之间的一对一关系.
保持对每个表视图的引用
//vc.h
@property (nonatomic, weak) IBOutlet UITableView* firstTableView;
@property (nonatomic, weak) IBOutlet UITableView* secondTableView;
Run Code Online (Sandbox Code Playgroud)
在datasource/delegate方法中,您需要考虑该方法需要根据正在使用的表视图而表现不同的事实.例如
//vc.m
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
...
if (tableView == self.firstTableView) {
...
} else { // tableView == self.secondTableView
...
}
}
return cell;
Run Code Online (Sandbox Code Playgroud)
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
...
if (tableView.tag == 1) {
...
} else { // tableView == self.secondTableView
...
}
}
Run Code Online (Sandbox Code Playgroud)
tag可以从.xib中分配.所以不需要在.h文件中有UITableVeiw变量.需要.xib中的两个表视图
| 归档时间: |
|
| 查看次数: |
21989 次 |
| 最近记录: |