UIView
Cocoa Touch で下端の下に影を描こうとしています。CGContextSetShadow()
影を描画するには を使用すべきであることは理解していますが、Quartz 2D プログラミング ガイドが少し曖昧です。
- グラフィックの状態を保存します。
CGContextSetShadow
適切な値を渡して関数を呼び出します。- 影を付けたい部分の描画をすべて行います。
- グラフィックの状態を復元する
サブクラスで次のことを試しました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>