【发布时间】:2018-04-13 16:55:12
【问题描述】:
我有一个带有 UIStackView 的 tableview 单元格。在我的 cellForRow 方法中,我根据某些因素将堆栈视图的轴从水平更改为垂直。
由于某种原因,当我将包含表格单元格的视图控制器推送到我的导航控制器时,此更改会稍微延迟。就好像在推送动画完成后才完成换轴一样。因此,当视图控制器和单元格第一次出现在屏幕上时,轴是水平的,一旦动画完成,它就会变为垂直。
如果包含表格单元格的视图控制器是根视图控制器,则更改会立即发生,因此问题似乎是同时推送视图控制器和更改堆栈视图轴的组合。
我尝试在更改访问权限后使用 self.layoutIfNeeded() 来立即强制更改布局,但这似乎没有任何改变。
以前有人见过这种行为吗?有解决办法吗?
【问题讨论】:
-
你在哪里添加代码来改变堆栈视图轴?
-
驻留在表格单元类中,在viewcontroller的cellForRow方法中执行。
-
只有在视图控制器完全加载到内存后才会重新加载表格视图,并且只有在推送动画完成后才会发生。
-
尝试将轴更改代码移动到主队列。它可能会解决问题。我不确定,
-
主队列上已经进行了轴更改。不过,我设法解决了这个问题。如果您有兴趣,请在下面查看我的答案:)
标签: ios uitableview uinavigationcontroller autolayout uistackview