iPad - 同一屏幕中的多个UITableView

rwv*_*via 6 iphone objective-c uitableview ipad

我从iPad编写应用程序,我必须在同一个屏幕上放置两个单独的UITableView.对于这个应用程序我不能把UITableView和divid分为两个部分,以获取原因.它必须是两个分开的.那么,在这种情况下我如何填充UITableView的行.我可以在单独的类中创建一个DataSource和Delegate,一个用于第一个UITableView,另一个用于第二个UITableView的DataSource和Delegate类,还是有其他方法更优雅?

很多.

Kri*_*kel 4

您可以通过几种不同的方式来做到这一点。最直接的方法是使用单独的类来处理每个表视图的数据源和委托协议。

或者,您可以使用单个类作为两者的数据源和委托,并检查传递到协议方法中的表视图的标识。

它看起来像这样:(我假设这段代码位于您的视图控制器上。)

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    CGFloat height = 44.0; // default height
    if (tableView == self.myLeftTableView) {
        height = // Compute the cell height for the left table view.
    } else {
        height = // Compute the cell height for the right table view.
    }
    return height;
}
Run Code Online (Sandbox Code Playgroud)

这可能很快就会变得丑陋,这就是为什么我推荐第一种方法。