我正在使用CATransition来滑动UIView的子视图。但问题是CATransition总是出现在整个屏幕上。而且看起来很混乱,因为我在窗口中有其他UI元素,在过渡时会重叠。如何通过UIView框架限制过渡的帧?我尝试将我的UIView的clipToBounds设置为YES。实际上它没有帮助。
我不太确定,但我认为你对 CATransition 只适用于整个屏幕的理解是错误的。它只应用于添加动画的视图。思路是将转换应用于实际要转换的视图的父视图。假设你有以下结构:- UIViewController - 视图(UIViewController 的主视图) - 要转换的视图你需要在 UIViewController 主视图和实际目标视图之间添加一个“容器”视图,以便它看起来像这样:- UIViewController - 视图(UIViewController 的主视图) - “容器”视图 <-- 在此处应用过渡效果 - 要转换的视图将转换应用于容器视图,您可以裁剪它(如果需要)。如果仍然超出边界,则尝试在包含视图上打开 clipsToBounds,或打开 layer 的 masksToBounds 属性。
UIView
必须被它的父视图剪裁,使用clipsToBounds
。 - SwiftArchitect