UITableView 布局在第一次加载时动画
Posted
技术标签:
【中文标题】UITableView 布局在第一次加载时动画【英文标题】:UITableView layout animates on first load 【发布时间】:2015-07-02 10:59:22 【问题描述】:我在UITableView
中遇到了奇怪的行为。在我的应用程序中,当第一次显示包含 tableView 的UIViewController
(ViewDidLoad
?) 时,它的所有元素(从单元格到 UISearchBar)都在为其大小设置动画并最终获得正确的尺寸。在那之后(ViewWillAppear
...),每次我呈现这个视图时,一切看起来都很好。我在 Storyboard 中使用自动布局,就像约束正在动画到它们的正确值一样。我正在使用 Swift 1.2、Xcode 6.4,它是一个基于 UITabBar 的应用程序。任何想法我做错了什么?谢谢!
编辑:我的UITableView
使用具有UITableViewAutomaticDimension
高度的自定尺寸单元格。它还包含一个UISearchBar
。
|搜索栏|
|---单元格 1---|
|---单元格 2---|
...
【问题讨论】:
solition 可以是这个条目***.com/questions/24984650/… 你用的是ios7还是8?滚动时也会发生这种情况吗? @jarora 我使用的是 iOS 8,滚动时不会发生这种情况,只会在第一次加载时发生。我注意到,在另一个表格视图中,当我关闭键盘时,对于键盘覆盖的单元格,同样的行为。 【参考方案1】:这通常发生在动画正在进行时,而表格视图中的单元格即将加载。尝试查看文件中的所有动画,看看是哪个动画块将这些动画添加到表格视图单元格中。
此外,如果您使用 UIView 动画块为约束设置动画,请致电 [self.view layoutIfNeeded]
在动画块之前和块内。
【讨论】:
以上是关于UITableView 布局在第一次加载时动画的主要内容,如果未能解决你的问题,请参考以下文章
UITableView ReloadData 动画单元格 UI
使用自动布局动画 UIView 动画 UITableView 复选标记
控制 uitableview insertRowsAtIndexPath 动画的速度