我正在使用 CATransition 来滑动 UIView 的子视图。但问题是 CATransition 总是出现在整个屏幕上。它看起来像一团糟,因为我在窗口中有另一个 UI 元素在转换时变得重叠。如何通过 UIView 框架限制过渡框架?我试图将我的 UIView 的 clipToBounds 设置为 YES。其实也没用。
问问题
2494 次
1 回答
1
我不是真的 100% 确定这一点,但我认为你对 CATransition 应用于整个屏幕是错误的。它适用于您将动画添加到的视图。
这个想法是您将转换应用到您实际想要转换的视图的父级。所以说你有以下结构。
- UIViewController
- 视图(UIViewController 的主视图)
- 查看您正在过渡
- 视图(UIViewController 的主视图)
你需要做的是在主 UIViewController 视图和你的实际目标视图之间添加一个“holding”或“container”视图,如下所示:
- UIViewController
- 视图(UIViewController 的主视图)
- “容器”视图 <-- 在此处应用转换
- 查看您正在过渡
- “容器”视图 <-- 在此处应用转换
- 视图(UIViewController 的主视图)
将您的过渡应用到容器视图,如果需要,您将能够对其进行剪辑。如果仍然超出范围,请尝试打开包含视图上的 clipsToBounds 或图层的 maskToBounds 属性
于 2013-03-08T09:27:42.737 回答