CAShapeLayer减慢界面旋转
问题描述:
我试图将一些自定义绘图代码从视图移动到CAShapeLayer
,然后将其作为子图层添加到原始视图的CALayer
。这也很好,但是当旋转设备时,动画开始口吃,例如,你只能看到原始方向的框架,然后是最终的方向,最多只有一帧 - 完全不平滑。相应的UIViewController
的滑入和滑出动画也有点不切实际(但不是那么多)。CAShapeLayer减慢界面旋转
所有CAShapeLayer
在其path
是一个CGPathAddRect
,它被设置为opaque
,其opacity
是1.0f
和fillColor
设置为不透明的蓝色。
直接在视图drawRect
方法中绘制路径时,动画是平滑。所以我想这跟旋转过程中的动画CAShapeLayer
有关。
你能告诉我如何摆脱这些匆匆或只是在动画时隐藏CAShapeLayer
?回到刚刚绘制CGPath
s不是我的选择,因为我依靠CAShapeLayer
为其路径设置动画的能力(在我尝试旋转视图时不会生成动画)。
/更新:当旋转的UIViewController
的视图包含CAGradientLayer
的子类作为其layerClass
(例如,具有梯度层作为背景的视图)的视图时,也会发生这种情况。
干杯
MrMage
答
好像这个问题已在iOS的4
答
以及有一个隐藏属性,可以隐藏CAShapeLayer
然后做动画。然后调用取消隐藏CAShapeLayer
,使你看不到它,而它旋转的方法,然后将其应光滑
我试图得到修复苹果那。它不起作用。它甚至不利于彻底清除'CAShapeLayer'在' - (空)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation \t \t \t \t \t \t \t \t \t \t时间:(NSTimeInterval)duration'然后'重新添加 - (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation'。 – MrMage 2010-01-12 17:59:47
那么你可以delloc它和alloc并保存它呢?试试也许。 BTW给我一些余地我不是iPhone最伟大的智慧,甚至在编码方面。只要看看我的个人资料,看看问题。我身后的背景真的很少。我只有17岁。对不起,我的一方缺乏帮助 – Jaba 2010-01-15 14:28:52
你真的确定这一层甚至是问题吗? – Jaba 2010-01-15 17:08:31