CAShapeLayer减慢界面旋转

我正在尝试将一些自定义绘图代码从视图移动到CAShapeLayer ,然后将其作为子图层添加到原始视图的CALayer 。 这也很好,但是在旋转设备时,动画开始出现口吃,例如,您只能看到原始方向的框架,然后是最终方向,最多只有一个框架 - 完全不平滑。 相应的UIViewController滑入和滑出动画也有点不稳定(但不是那么多)。

所有CAShapeLayer在它的path都有一个CGPathAddRect ,它被设置为opaque ,其opacity1.0f ,并且fillColor被设置为不透明的蓝色。

但是,直接在视图drawRect方法中绘制路径时,动画很平滑。 所以我想这与CAShapeLayer在旋转过程中进行动画有关。

你能告诉我如何摆脱这些急动或在动画时隐藏CAShapeLayer ? 回到直接绘制CGPath对我来说不是一种选择,因为我依靠CAShapeLayer为其路径设置动画的能力(在我尝试旋转视图的过程中,它不是动画效果)。

/ update:当旋转UIViewController的视图包含CAGradientLayer的子类作为其layerClass的视图(例如,具有作为背景的梯度图层的视图)时,也会发生这种情况。

干杯

MrMage


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


似乎这个问题已被iOS 4中的Apple修复。

链接地址: http://www.djcxy.com/p/74245.html

上一篇: CAShapeLayer slowing down interface rotation

下一篇: NSScrollView: fade in a top