CAShapeLayer减慢了界面旋转速度

时间:2010-01-09 13:43:05

标签: iphone cocoa-touch core-animation calayer cashapelayer

我正在尝试将一些自定义绘图代码从视图移动到CAShapeLayer,然后将其作为子图层添加到原始视图的CALayer。这也很有效,但是当旋转设备时,动画开始断断续续,例如,你只看到原始方向的框架,然后是最终的方向,中间至多有一个框架 - 根本不光滑。相应UIViewController的幻灯片和幻灯片动画也有点不稳定(但不是那么多)。

CAShapeLayerpath所有CGPathAddRect的{​​{1}}为opaqueopacity1.0ffillColordrawRect CAShapeLayer设置为不透明蓝色。

但是,在视图CAShapeLayer方法中直接绘制路径时,动画 是平滑的。所以我认为它与旋转期间动画的CGPath有关。

你能告诉我如何摆脱那些抽搐或者在动画时隐藏CAShapeLayer吗?回到直接绘制UIViewController s对我来说不是一个选项,因为我依靠CAGradientLayer设置其路径动画的能力(在我尝试旋转视图时没有动画)。

/ update:当旋转layerClass视图包含子类{{1}}作为其{{1}}的视图时(例如,以渐变图层为背景的视图),也会发生这种情况。

干杯

MrMage

2 个答案:

答案 0 :(得分:0)

有一个隐藏属性,你可以隐藏CAShapeLayer然后做动画。然后调用一个取消隐藏CAShapeLayer的方法,以便在旋转时看不到它,然后它应该是平滑的

答案 1 :(得分:0)

似乎Apple已经在iOS 4中解决了这个问题。