iOS8 UITableView 和 Cell - 自动布局高度 - 触摸和执行 segue 时的移位/垂直偏移错误

Posted

技术标签:

【中文标题】iOS8 UITableView 和 Cell - 自动布局高度 - 触摸和执行 segue 时的移位/垂直偏移错误【英文标题】:iOS8 UITableView and Cell - Autolayout Height - Shift / Vertical offset bug on touch and perform segue 【发布时间】:2014-12-19 08:16:52 【问题描述】:

当我触摸包含自动布局标签(图像描述)的单元格时,我的 tableView 有一个烦人的问题。自动布局运行良好,但是,当我在 segue 之前触摸单元格时,会出现单元格移动运动(向下或向上且高度不同)。

不明白为什么,这个问题是随机的,我觉得它发生在一个单元格接近出现在顶部或底部时。

这里是有关触摸/单击单元格并转换到另一个视图时出现问题的视频

http://youtu.be/kJALa8PhD-U

图片:http://i.stack.imgur.com/uWzDr.png

提醒某人某事?

ios8 - Swift 上,我的 iPhone 上也有同样的问题。

谢谢!

【问题讨论】:

【参考方案1】:

可能发生的事情是因为您使用自动布局来获取动态高度的 tableviewcell,而 iOS 在 segue 期间没有正确计算单元格的高度。使用estimatedHeightForRowAtIndexPath 委托回调(如果您有不同的高度)或estimatedRowHeight 将是我对如何解决此问题的猜测。

这样做应该会给您带来两个好处,首先您的视图应该在 segue 期间停止闪烁。其次,iOS 不必查看所有表格视图单元格来确定其滚动指示器的高度(这对性能有好处)。

【讨论】:

以上是关于iOS8 UITableView 和 Cell - 自动布局高度 - 触摸和执行 segue 时的移位/垂直偏移错误的主要内容,如果未能解决你的问题,请参考以下文章

具有自动布局的 UITableView 中的动态单元格高度

iOS开发小技巧--cell往左拖拽出现很多按钮的实现,仅仅适用于iOS8以后

利用iOS8新特性计算cell的实际高度

包含 UITableView 的 UITableViewCell 的高度(iOS8 和 AutoLayout)

iOS8以后自动计算cell的高度

iOS8新特性 计算 cell 的高度