ヘッダーとして使用している UIView があり、このビューにドロップ シャドウを適用しました。意図したとおりに画面に表示されますが、回転後、影はそれ自体の上に再描画されたかのように 2 倍の暗さになります。その後の回転により、さらに暗くなります。ヘッダーとシャドウのコードは次のとおりです。
self.header = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, HEADER_HEIGHT)];
self.header.backgroundColor = [UIColor whiteColor];
self.header.autoresizingMask = UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleWidth;
// Drop shadow.
self.header.layer.shadowColor = [UIColor blackColor].CGColor;
self.header.layer.shadowOpacity = 0.5;
self.header.layer.shadowRadius = 2.0;
self.header.layer.shadowOffset = CGSizeMake(0, 2);
// self.header.layer.shouldRasterize = YES;
// self.header.layer.rasterizationScale = [UIScreen mainScreen].scale;
このコードはすべて、View Controller の viewWillLayoutSubviews で発生し、メソッドの先頭で [super willLayoutSubviews] を呼び出します。同じコードを viewWillAppear:animated に入れてみましたが、効果がありません。