文本在一个UILabel
显示后闪烁,首先以省略号出现在单行上,然后占据其适合的 2 行。
请注意,单元格高度没有改变。
问题是这样的:
标签“Друзъя, примите участие и наполните Коробку!” (朋友们,快来参与并填满盒子吧!) 首先出现被截断的并在视图转换期间错位为“Друзъя, примите участи...”。
这种情况仅发生在装有 iOS 8.1 的 iPhone 4s 上。所有使用标签的操作(文本分配除外)都发生在情节提要中。
是什么原因导致这种闪烁?
假设您要更改测试cellForRowAtIndexPath
,并进一步假设并非所有字符串都会发生这种情况,只有某些具有一定长度的字符串才会发生这种情况,那么这是一个 iOS 错误。
参见冗长的讨论这个堆栈溢出UITableViewCell post https://stackoverflow.com/questions/14995573/dequeued-uitableviewcell-has-incorrect-layout-until-scroll-using-autolayout/35236138#35236138,以及一个可能的解决方法:
override func viewDidLoad() {
super.viewDidLoad()
tableView.setNeedsLayout()
tableView.layoutIfNeeded()
tableView.reloadData()
}
Notes
1.我还注意到使用一个小的值estimatedRowHeight
例如20
,它没有最小的单元那么高,与加倍的结合reloadData()
也是有益的。
2.您将需要调用一个额外的reloadData()
prior setNeedsLayout()
更改单元格宽度时,例如切换tableView.editing
3.修补标签的一个强大替代方法是使用不可编辑、不可选择、无大写、不启用滚动、不显示水平和垂直指示器、无弹跳 UITextView
.
练习这个错误,并尝试各种解决方法:
► 在以下位置找到此解决方案GitHub https://github.com/SwiftArchitect/SO-35260912以及其他详细信息快速食谱 http://swiftarchitect.com/recipes/#SO-35260912.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)