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