当阴影可见时,iOS屏幕旋转降级

当阴影可见时,iOS屏幕旋转降级,ios,core-animation,uiinterfaceorientation,Ios,Core Animation,Uiinterfaceorientation,这并不是针对任何特定的代码,但我注意到,当我有一个UIView,其中添加了一个阴影到它的层中时,在界面方向之间旋转时,动画会变得更加滞后/起伏 有没有人注意到这个问题或找到了解决方法?有些东西在CPU时间方面非常昂贵。找个时间用仪器检查一下 阴影 贝塞尔路径 带破折号的贝塞尔路径(非常昂贵) 这不是一个全面的清单。我怀疑梯度也会存在 如果您发现这些东西正在降低您的动画或重画质量,则需要在UIViewController方法中切换它们 -(void)willRotateToInterfaceO

这并不是针对任何特定的代码,但我注意到,当我有一个UIView,其中添加了一个阴影到它的层中时,在界面方向之间旋转时,动画会变得更加滞后/起伏


有没有人注意到这个问题或找到了解决方法?

有些东西在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;

非常感谢,先生。尽管如此,它们严重降低了性能,但这实在是太糟糕了。也许在视图下方显示一个预先制作的阴影图像,而不是使用内置的阴影渲染。非常感谢,先生。尽管如此,它们严重降低了性能,但这实在是太糟糕了。可能在视图下方显示预先制作的阴影图像,而不是使用内置阴影渲染。