使用Storyboard的UITableView具有不同的单元原型和高度

Dan*_*zon 4 xcode uitableview ios

我目前正在开发我的第一个iOS应用程序,并遇到了一个我似乎无法解决的问题.经过长时间的思考和奋斗,我决定在这里询问是否有人遇到过类似的问题,可以帮助我.

我有一个带有两个单元原型的UITableView.我可以毫无问题地渲染两种细胞类型,但是有一个小的捕获.一种细胞类型的高度为475px,而另一种仅为250px.渲染表视图时,表的每一行都具有相同的高度.我继续调试我的故事板,发现我的表视图的行高为475px.这对于较高的细胞来说很好,但对于较小的细胞,它会留下一个空白区域.

我希望能够根据渲染的单元格类型调整每行的高度.这可能吗?我正在考虑使用heightForRowAtIndexPath,但因为在执行时,单元格不存在,我无法检查某个索引处单元格的类.另外,在我的故事板中,我为两个单元格原型中的每一个指定了高度,但它没有在运行时反映出来.有谁知道如何解决这类问题?先谢谢你.

Fog*_*ter 5

您需要使用heightForRowAtIndexPath但不应该检查表以找出哪个单元格在哪个索引中.您应该检查您的数据源.

例如,cellForRowAtIndexPath你会有......

if ( /*some condition*/ ) {
    cell = //dequeue cell type 1
} else {
    cell = //dequeue cell type 2
}
Run Code Online (Sandbox Code Playgroud)

所以,在heightForRow你做同样的检查.

if ( /*some condition*/ ) {
    return 475;
} else {
    return 250;
}
Run Code Online (Sandbox Code Playgroud)