18

iPhone/iPad で UIView に影を簡単に追加できることがわかったときは、とても興奮しました。

フレームワークを Xcode に追加し、インポートをファイルの先頭に追加するだけです。

#import <QuartzCore/QuartzCore.h>

じゃあ後で:

self.contentView.layer.shadowRadius = 3.0;
self.contentView.layer.shadowOffset = CGSizeMake(-2.0, -3.0);
self.contentView.layer.shadowOpacity = 0.5;
self.contentView.layer.shadowColor = [UIColor blackColor].CGColor;

これにより、アプリに美しい影が作成されますが、ビューが表示されると、デバッガーの外部で起動された場合でも、影が遅くなります。私が忘れていることはありますか、それともこの方法はより大きなビューには実用的ではありませんか?

参考までに、こちらにスクリーンショットを掲載しました。

4

2 に答える 2

53

shadowPathプロパティを設定する必要があります。これが、CoreGraphics が影を最適化できる方法です。

たとえば、ビューが不透明な長方形の場合:

self.contentView.layer.shadowPath = [UIBezierPath bezierPathWithRect:self.contentView.bounds].CGPath;
于 2010-09-09T14:41:08.500 に答える
6

この宝石がコメントに埋もれてほしくないので、答えるべきだと思いました。

上記のcobbalの回答に加えて、occulusは、テキストシャドウなどの非長方形のシャドウに対する次の最適化についても言及しました。

self.contentView.layer.shouldRasterize = YES;
// Fix visual degradation when rasterizing on high-density screens:
self.contentView.layer.rasterizationScale = [[UIScreen mainScreen] scale];
于 2013-02-22T00:51:52.360 に答える