ios – 如何从NIB读取UITableViewCell(子类)的高度?

我有一个在NIB中定义的UITableViewCell(实际上是一个子类).在NIB中我将帧高设置为183,我还将“行高”设置为183并勾选自定义.

在我原来的问题中,这里的一切都出了问题.看起来我的背高度错了,细胞装在错误的高度,然后调整到合适的高度,造成一个令人讨厌的视觉故障.

实际上我做了一些愚蠢的事情(并且总是返回错误的高度),而且我已经太晚了才能弄清楚,所以我请求帮忙然后去睡觉.睡眠(咖啡)使一切都清晰.

因此,对于记录,如果从NIB加载自定义UITableViewCell,您可以查看frame.size.height并返回正确的数字.

如果你从tableView返回错误的数字:heightForRowAtIndexPath:你可以得到这个小故障,至少如果错误的单元格是表格中的最后一个(我预计问题将以另一种方式表现给其他单元格)

所以我已经解决了我自己的问题,并希望为其他任何人提供足够的信息.如果有人认为这应该有正式答案,请放心,我计划在一天或三天内接受最好看的一个.

解决方法

一个调用的UITableViewDelegate方法是heightForRowAtIndexPath而不是UITableViewDataSource方法,cellForRowAtIndexPath.

您只能在cellForRowAtIndexPath中获取自定义单元格高度,您可以在其中为该单元格分配init.因此,它不会考虑自定义单元格高度.

它将采用heightForRowAtIndexPath方法中提到的单元格的高度.因为它首先被调用.

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...