语境:
- 构建一个应用程序,该应用程序填充一个从 asyc json 转储中获取数据的表。
- 单元格属于自定义类(我定义)。单元格中的主标签可以很长。
- 它被“放置”在原型单元中的情节提要中,但通过代码(非常标准的东西)进行定制。
- 标签在 cellForRowAtIndexPath 中调整大小,行通过 heightForRowAtIndexPath 调整大小 - 通过强制调用 cellForRowAtIndex 来调整行大小,就像 Massimo 在此处的回答
所以根据手头的问题 - 我注意到发生了一些有趣的(坏的)事情。
第一个问题:当表格加载时,行和标签会正确地动态调整大小!伟大的!但是,当我向下滚动然后向上滚动时,标签高度将不正确——(例如)第一行在加载时是正确的。然后当我向下滚动然后向上滚动以再次查看它时,它将被截断。具体来说,行大小会很好,但标签高度会改变并被截断为仅 2 行。想知道这是否是因为我同时进行了故事板和编码来自定义单元格。有人以前看过这个吗?
第二个问题:当我向下滚动时,虽然行的大小正确(大),但标签很短(被截断。)想知道它是否与上述“潜在答案”相反。
- “可能的答案”是所有行都是“预先”计算和存储的,因此向下滚动/然后向后滚动不会影响它。但是,当单元格“不在视野范围内”并出列时,当它们重新查看(向下滚动/然后向后滚动)时,它将依赖故事板。(不恰当?)