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 时的移位/垂直偏移错误的主要内容,如果未能解决你的问题,请参考以下文章
iOS开发小技巧--cell往左拖拽出现很多按钮的实现,仅仅适用于iOS8以后