UIView の下に影を描くにはどうすればいいですか? 質問する

UIView の下に影を描くにはどうすればいいですか? 質問する

UIViewCocoa Touch で下端の下に影を描こうとしています。CGContextSetShadow()影を描画するには を使用すべきであることは理解していますが、Quartz 2D プログラミング ガイドが少し曖昧です。

  1. グラフィックの状態を保存します。
  2. CGContextSetShadow適切な値を渡して関数を呼び出します。
  3. 影を付けたい部分の描画をすべて行います。
  4. グラフィックの状態を復元する

サブクラスで次のことを試しましたUIView:

- (void)drawRect:(CGRect)rect {
    CGContextRef currentContext = UIGraphicsGetCurrentContext();
    CGContextSaveGState(currentContext);
    CGContextSetShadow(currentContext, CGSizeMake(-15, 20), 5);
    CGContextRestoreGState(currentContext);
    [super drawRect: rect];
}

..しかし、これは私にはうまくいかず、(a) 次にどこに行けばいいのか、(b)UIViewこれを機能させるために何かする必要があるのか​​どうかについて、少し困惑しています。

ベストアンサー1

はるかに簡単な方法は、初期化時にビューのいくつかのレイヤー属性を設定することです。

self.layer.masksToBounds = NO;
self.layer.shadowOffset = CGSizeMake(-15, 20);
self.layer.shadowRadius = 5;
self.layer.shadowOpacity = 0.5;

QuartzCore をインポートする必要があります。

#import <QuartzCore/QuartzCore.h>

おすすめ記事