问题标签 [heightforrowatindexpath]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
10 回答
22225 浏览

ios - Iphone - 当每个单元格高度是动态的时,何时计算 tableview 的 heightForRowAtIndexPath?

我已经多次看到这个问题被问过,但令人惊讶的是,我还没有看到一个一致的答案,所以我会自己尝试一下:

如果您有一个包含您自己的自定义 UITableViewCells 的 tableview,其中包含 UITextViews 和 UILabels,其高度必须在运行时确定,那么您应该如何确定 heightForRowAtIndexPath 中每一行的高度?

最明显的第一个想法是通过计算然后对 cellForRowAtIndexPath 内的单元格内的每个视图的高度求和来计算每个单元格的高度,并存储最终的总高度以供以后检索。

然而这将不起作用,因为 cellForRowAtIndexPath 在 heightForRowAtIndexPath 之后被调用。

我唯一能想到的就是在 viewDidLoad 中进行所有计算,然后创建所有 UITableViewCells,计算单元格高度并将其存储在 UITableViewCell 子类中的自定义字段中,然后将每个单元格放入 NSMutableDictionary 中,并将 indexPath 作为键,然后简单地使用 cellForRowAtIndexPath 和 heightForRowAtIndexPath 中的 indexPath 从字典中检索单元格,返回自定义高度值或单元格对象本身。

这种方法似乎是错误的,因为它没有使用 dequeueReusableCellWithIdentifier,相反,我将一次将所有单元格加载到我的控制器中的字典中,并且委托方法只会从字典中检索正确的单元格。

我没有看到任何其他方式来做到这一点。这是一个坏主意 - 如果是这样,正确的方法是什么?

0 投票
6 回答
31628 浏览

iphone - 如何在 heightForRowAtIndexPath 中获取 UITableViewCell?

如何UITableViewCellheightForRowAtIndexPath方法中获得when,即给定indexPath?

(然后我可以访问我创建的内容视图来增加它们的高度)

谢谢

编辑:事实上真的有一个有效的方法可以做到这一点吗?当我发表一些NSLog声明时,它似乎heightForRowAtIndexPath在调用之前调用了几次cellForRowAtIndexPath(这是我UILabels在单元格中设置的位置)?这种暗示我可能会尝试使用一种不起作用的技术,即我希望heightForRowAtIndexPath访问每个单元格中已经创建的标签以获取它们的高度并将它们加在一起以获得整个单元格行高度,但是如果他们没有'还没有设置(在cellForRowAtIndexPath)那么我想我的方法真的行不通吗?

0 投票
2 回答
10417 浏览

iphone - 当单元格尚未构建时,如何计算 heightForRowAtIndexPath?

问题 - 如何最好地计算 UITableViewController 的“heightForRowAtIndexPath”方法中的一行的高度,因为:

  1. 我正在使用自定义的子类 UITableViewCell & 子视图的实际大小(例如 UILabels)是在运行时计算的 & 取决于用户是否更改了字体大小等
  2. 单元格实际上并没有在“heightForRowAtIndexPath”之前准备好,因此您不能依赖调用特定的自定义单元格即时来查询它

目前我唯一能想到的是: 1. 在您的自定义 UITableViewCell 子类中,创建一个计算 UITableViewCell 子类中每个子视图(例如 UILabel)高度的方法 - 然后在单元格子类中使用它创建实例 2. 同样在自定义子类中创建一个贯穿所有 UILabel 的类方法,调用上述方法,对高度求和,从而得出总行高。它必须获取传递给它的数据(例如,每个 UILabel 中的文本) 3. 在 UITableViewController “heightForRowAtIndexPath”中,您必须调用上面(2)中的“calRowHeight”类型方法,将标签文本数据传递给它. 如此有效地在您的自定义单元格子类上调用一个类方法,该类方法知道如何计算总行高,但它'

还有比我想念的更简单的方法吗?

0 投票
1 回答
720 浏览

iphone - 警告:“消息 'sizeWithFont:constrainedToSize:lineBreakMode:' 的接收者为零……”

我收到了这个警告:

“消息‘sizeWithFont:constrainedToSize:lineBreakMode:’的接收者为 nil,并返回一个类型为‘CGSize’的值,这将是垃圾”

我不明白。我究竟做错了什么?

这是我正在使用的代码:

0 投票
4 回答
9725 浏览

iphone - 在性能问题之前,所有行都调用 heightForRowAtIndexPath 以及 UITableView 中有多少行?

我以为我已经阅读了一个UITableView不会heightForRowAtIndexPath在所有行上调用的内容,而只是在那些可见的行上。然而,这不是我所看到的。例如,我看到数百个电话要求heightForRowAtIndexPath更改 iPhone 的方向这一简单情况。

因此,我在这里假设对于已实现的 a UITableViewheightForRowAtIndexPath它确实(即heightForRowAtIndexPath)被所有行(不仅仅是可见行)调用...如果这不是很正确,请告诉我。

问题:鉴于上述情况,在通常发生性能问题之前,您可以拥有多少行UITableView(在哪里实现)?heightForRowAtIndexPath

有没有办法解决性能问题?即为每行设置一个标称/标准高度而不是实现heightForRowAtIndexPath,但是只有在显示时正确设置每行高度并在此处正确设置...但是哪种方法可以做到这一点?

0 投票
1 回答
285 浏览

iphone - 当“删除”滑入时,如何截断 UITableViewCellStyleSubtitle 单元格的文本?

我有一个UITableView使用UITableViewCellStyleSubtitle风格。我还通过使用增加了单元格高度

然后计算所需的高度heightForRowAtIndexPath。但是,当用户滑入“删除”按钮时,单元格中的文本会拉伸并与单元格的上下边缘重叠。如果我使用默认单元格样式,如何截断文本?(或者,我可以再次更改单元格高度吗?)

0 投票
3 回答
6589 浏览

iphone - Hide a UITableView by setting row height to 0?

I just inherited code which hides/shows rows a UITableView by using the delegate heightForRowAtIndexPath method and returning height 0 for "hidden rows".

The code works, but it has me concerned there might be fraught with unforeseen complications. Can someone either ease my concerns or give me good reasons why this could cause problems (I couldn't find any issues with initial testing).

The table is fairly small <10 rows total and would require custom row heights even without this hidden row solution.

0 投票
0 回答
342 浏览

ios - 分组表中的 UITableViewCell 宽度错误

我正在为分组表创建一些自定义单元格。单元格具有我在 heightForRowAtIndexPath 内计算的动态高度。

调用 heightForRowAtIndexPath 时,单元格的 contentView 框架为 {0, 0, 287, 44}(它有一个显示按钮),然后我根据 contentView 的宽度计算高度。

但是当单元格被添加到表格时,它的 contentView 被更改为 {10, 1, 267, 53} 而没有对 heightForRowAtIndexPath 的新调用 - 这完全改变了我的布局和溢出文本的结果。

如何确定分组表的 contentView 的正确宽度?我唯一的想法是对值进行硬编码,但我更喜欢动态计算所有内容。

0 投票
2 回答
874 浏览

iphone - 为表格视图中的单元格设置可变高度

我正在加载一个表格视图。我的表格视图的每个单元格都应根据数据具有不同的高度。在下面的代码中,我在表格的每一行中显示联系人。每个联系人可能有多个电话号码。我在每个单元格中显示联系人及其电话号码。因此,根据每个联系人的电话号码数量,单元格的高度会发生变化。我编写了以下代码来显示表格中的联系人。

我找不到正确设置单元格高度的方法。我已经实施

委托方法并尝试了各种逻辑。但我无法正确设置行的高度。一个问题似乎是 indexpath.section 值,它在两种委托方法中都会发生变化。在这种情况下需要帮助。

0 投票
1 回答
1294 浏览

ios - 在类似 twitter 的客户端中重用 UITableViewCell(每个自定义高度)

我正在开发一个类似 twitter 客户端 iOS 版本的项目。在设计表格视图时,每个单元格都会更改高度以适应其内容(推文)。

但是我遇到了一个问题:当前屏幕的单元格高度效果很好,但是向下滚动时,新单元格会重用旧单元格的高度。