2

我正在向视图添加阴影(包括 shadowPath 以便性能更好),如下所示:

CALayer *layer=aView.layer;
layer.shadowColor=[UIColor blackColor].CGColor;
layer.shadowOpacity=0.8f;
layer.shadowOffset=CGSizeMake(4.0f,4.0f);
layer.shadowRadius=6.0f;
layer.masksToBounds=NO;
layer.shouldRasterize=YES;
layer.shadowPath=[UIBezierPath bezierPathWithRect:aView.bounds].CGPath; 

但是当设备旋转并且视图框架发生变化时,阴影会出错(偏移很远等)

我尝试在 layoutSubviews 方法中重置阴影,但在旋转过程中,您可以看到阴影在屏幕上移动。

在旋转过程中处理阴影路径的正确方法是什么?

(作为最后的手段,我要移除阴影,然后在旋转后将其放回原处,但它很笨重,然后必须在其控制器完成设备方向时告知我的视图:

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation

有没有更好的方法让 VIEW 可以知道旋转已经完成?)

4

0 回答 0