【发布时间】:2019-10-06 01:24:15
【问题描述】:
我最近遇到了一个所有布局都动画化的问题。我不知道是什么原因造成的。欢迎任何关于如何检测问题来源的想法。
控制器层次结构:
- UITabBar 控制器
- UINavigationControler
- UIViewController
- UIPageViewController
- UICollectionView
- 谷歌地图
- UINavigationControler
可见的动画内容:(不在动画块内)
- 布局:
- 标签和视图在单元格中移动到目标位置(自行调整大小的单元格)
- 水平集合视图项目来自角落到它们的位置
- 层:
- 圆角半径从 0 到
height/2动画。
- 圆角半径从 0 到
- 查看:
- isHidden 有时不起作用。它在
UIStackView内部,当隐藏它时,它只是将它从堆栈视图中推出(由于错误而可见,奇怪但确实如此) - 设置动画按钮的标题(
setTitle:forState:方法。而不是闪烁动画,某种变形动画)
- isHidden 有时不起作用。它在
布局和样式代码在哪里?
首先在viewDidLoad 和内部数据源didSet 观察者之后
线程呢?
我仔细检查了主队列中调度的所有 UI 工作,Main Thread Checker 已打开。
- 给我看代码!!!
不幸的是,这是一个史诗般的制作项目,导致此问题的更改是 UNKNOWN。我无法在某些演示应用程序中重现该问题以发布它。对不起
【问题讨论】:
-
有时是因为您使用了另一个窗口。有时因为代码在另一个线程上。但是既然你说你已经检查了主线程,我很想看看是什么导致了这个奇怪的 iOS 错误。
-
不,它不在另一个窗口中。
-
动画什么时候出现?它们对应一个事件吗?它们是同时发生的吗?
-
同时在一起。每次布局系统发生变化时,例如 stackview 子视图的可见性,或适合的标签大小,或集合视图单元格自我调整大小等。
标签: ios swift animation layout