CATransition如何裁剪到UIView的边界?

7
我正在使用CATransition来滑动UIView的子视图。但问题是CATransition总是出现在整个屏幕上。而且看起来很混乱,因为我在窗口中有其他UI元素,在过渡时会重叠。如何通过UIView框架限制过渡的帧?我尝试将我的UIView的clipToBounds设置为YES。实际上它没有帮助。
1个回答

1
我不太确定,但我认为你对 CATransition 只适用于整个屏幕的理解是错误的。它只应用于添加动画的视图。
思路是将转换应用于实际要转换的视图的父视图。假设你有以下结构:
- UIViewController - 视图(UIViewController 的主视图) - 要转换的视图
你需要在 UIViewController 主视图和实际目标视图之间添加一个“容器”视图,以便它看起来像这样:
- UIViewController - 视图(UIViewController 的主视图) - “容器”视图 <-- 在此处应用过渡效果 - 要转换的视图
将转换应用于容器视图,您可以裁剪它(如果需要)。如果仍然超出边界,则尝试在包含视图上打开 clipsToBounds,或打开 layer 的 masksToBounds 属性。

正确的两点是:你正在应用转场效果的 UIView 必须被它的父视图剪裁,使用 clipsToBounds - SwiftArchitect

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接