一个控制器中,实现多个滚动视图,如果是固定内容,一般都用UIScrollView就可以,但是如果要实现,内容可能动态的显示,而且是两个或以上不同的动态视图呢,所以就是考虑使用两个UITableView,那么问题来了!
代理如何实现,两个不同的数据源?!
原来苹果早就帮我们想好了,只是我们平时没有注意啊,直接上方法:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
if (tableView == self.shoppingCartTableView) {
return cell;
}
else if(tableView == self.submitTableview)
{
}
else
{
}
}
有必要解释一下吗? 就是创建不同的TableView,然后代理方法,数据源方法都会带有 tableView:(UITableView *)tableView 来区别不同的tableView
有必要说明的一点是,如果有些列表的高度是动态的 ,有些是静态的,
有人可能想到用 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
但是这个方法必须固定的数值,当然iOS8 是可以解决了,但是如果还要适应iOS 7或iOS6 (应该不会在有了吧)
submitTalbeView.rowHeight = 35.0f;
就是rowHeight,给固定高度的tableview设置自己的cell高度,然后动态的,或者xib,等自己动态计算啊~
nice~