当阴影可见时,iOS屏幕旋转降级
这并不是针对任何特定的代码,但我注意到,当我有一个UIView,其中添加了一个阴影到它的层中时,在界面方向之间旋转时,动画会变得更加滞后/起伏当阴影可见时,iOS屏幕旋转降级,ios,core-animation,uiinterfaceorientation,Ios,Core Animation,Uiinterfaceorientation,这并不是针对任何特定的代码,但我注意到,当我有一个UIView,其中添加了一个阴影到它的层中时,在界面方向之间旋转时,动画会变得更加滞后/起伏 有没有人注意到这个问题或找到了解决方法?有些东西在CPU时间方面非常昂贵。找个时间用仪器检查一下 阴影 贝塞尔路径 带破折号的贝塞尔路径(非常昂贵) 这不是一个全面的清单。我怀疑梯度也会存在 如果您发现这些东西正在降低您的动画或重画质量,则需要在UIViewController方法中切换它们 -(void)willRotateToInterfaceO
有没有人注意到这个问题或找到了解决方法?有些东西在CPU时间方面非常昂贵。找个时间用仪器检查一下
- 阴影
- 贝塞尔路径
- 带破折号的贝塞尔路径(非常昂贵)
UIViewController
方法中切换它们
-(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
//disable shadows + expensive drawing
}
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
{
//enable shadows + expensive drawing
}
就CPU时间而言,有些东西非常昂贵。找个时间用仪器检查一下
- 阴影
- 贝塞尔路径
- 带破折号的贝塞尔路径(非常昂贵)
UIViewController
方法中切换它们
-(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
//disable shadows + expensive drawing
}
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
{
//enable shadows + expensive drawing
}
当使用阴影时,
CALayer
的shadowPath
属性在性能上产生了非常(!)显著的差异,尤其是在新款iPad上。虽然我同意在更改显示方向时禁用阴影是一个好主意,但只要使用shadowPath
(如果您还没有使用它),就值得一试。尽管路径可以是任何有效的CGPathRef
,但在大多数情况下,这是您想要的:
self.layer.shadowPath = [UIBezierPath bezierPathWithRect:self.layer.bounds].CGPath;
当使用阴影时,
CALayer
的shadowPath
属性在性能上产生了非常(!)显著的差异,尤其是在新款iPad上。虽然我同意在更改显示方向时禁用阴影是一个好主意,但只要使用shadowPath
(如果您还没有使用它),就值得一试。尽管路径可以是任何有效的CGPathRef
,但在大多数情况下,这是您想要的:
self.layer.shadowPath = [UIBezierPath bezierPathWithRect:self.layer.bounds].CGPath;
非常感谢,先生。尽管如此,它们严重降低了性能,但这实在是太糟糕了。也许在视图下方显示一个预先制作的阴影图像,而不是使用内置的阴影渲染。非常感谢,先生。尽管如此,它们严重降低了性能,但这实在是太糟糕了。可能在视图下方显示预先制作的阴影图像,而不是使用内置阴影渲染。