gpt4 book ai didi

ios - 使用 setRowHeight 函数设置 UITableView 单元格高度和 tableView : heightForRowAtIndexPath: function? 之间有什么区别

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:02:57 26 4
gpt4 key购买 nike

如题,这两种方法有什么区别?

我发现如果我用tableView: heightForRowAtIndexPath:设置它的高度,然后我想得到高度的值,我会得到一个正确的值:

CGFloat height = cell.frame.size.height;

但是这是一个错误的值,结果是 44:

CGFloat height = tableview.rowHeight;

但如果我以另一种方式设置它 -- setRowHeight:,我可以通过两种方式获得正确的值。

那么它们之间有什么不同呢?

最佳答案

rowHeightUITableView 的属性,用于在委托(delegate)未实现 tableView:heightForRowAtIndexPath: 方法时设置表格行高.

来自 Apple docs ,

You may set the row height for cells if the delegate doesn't implement the tableView:heightForRowAtIndexPath: method. If you do not explicitly set the row height, UITableView sets it to a standard value.

当从委托(delegate)方法 tableView:heightForRowAtIndexPath: 返回行高时,属性 rowHeight 的值设置为默认值(IMO,44 点)。

Apple 建议在特殊情况下使用 rowHeight

There are performance implications to using tableView:heightForRowAtIndexPath: instead of rowHeight. Every time a table view is displayed, it calls tableView:heightForRowAtIndexPath: on the delegate for each of its rows, which can result in a significant performance problem with table views having a large number of rows (approximately 1000 or more).

根据我的经验,tableView:heightForRowAtIndexPath: 在单元格高度是动态的时使用。例如,您必须在每个单元格中显示不同高度的多行文本。在这种情况下,使用此委托(delegate)方法计算并返回单元格的动态高度。

希望对您有所帮助!

关于ios - 使用 setRowHeight 函数设置 UITableView 单元格高度和 tableView : heightForRowAtIndexPath: function? 之间有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19397315/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com