我知道当 UIKit 渲染一个单元格时,它使用 tableView:heightForRowAtIndexPath: 来计算高度。我的问题是,如何以及何时在实际的 UITableViewCell 上设置。我想构建动态单元格,并且需要计算单元格内文本的位置。我相信我可以只使用 self.bounds 和 self.frame - 我只是好奇它们是在什么时候设置的 - 即使使用 dequeueReusableCellWithIdentifier 。
谢谢。
Best Answer-推荐答案 strong>
从tableView:cellForRowAtIndexPath: 返回单元格后,tableview会设置一些属性,包括单元格的边界,然后调用tableView:willDisplayCell:forRowAtIndexPath: 。该调用之后的唯一修改是设置 alpha/frame,即使这样也仅在为行设置动画时进行。
鉴于,如果您使用的是库存 UITableViewCell ,您可以在 tableView:willDisplayCell:forRowAtIndexPath: 中布局您的文本,并确保该单元格已经具有正确的宽度/高度。也就是说,如果您要做的不仅仅是基础知识,您可能需要考虑子类化 UITableViewCell 。在您的子类中,您可以在 layoutSubviews 中布置您的字段,并确保您的单元格将始终正确布置。
关于iphone - UITableViewCell 的高度如何设置,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/4631781/
|