[解決済み] UIViewの下に影を描くには?
2022-03-15 01:13:38
質問
の下端に影をつけたいのですが、どうすればいいですか?
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
を使えば、うまくいくのでしょうか?
解決方法は?
現在のコードでは
GState
そして、影を描画するように設定する前の状態に復元します。そして最後に、スーパークラスが実装する
drawRect
: .
シャドウの設定に影響されるような描画が必要な場合 後
CGContextSetShadow(currentContext, CGSizeMake(-15, 20), 5);
しかし 以前
CGContextRestoreGState(currentContext);
ですから、もしスーパークラスの
drawRect:
をシャドウで「包む」ようにするには、次のようにコードを並べ替えてはどうでしょうか?
- (void)drawRect:(CGRect)rect {
CGContextRef currentContext = UIGraphicsGetCurrentContext();
CGContextSaveGState(currentContext);
CGContextSetShadow(currentContext, CGSizeMake(-15, 20), 5);
[super drawRect: rect];
CGContextRestoreGState(currentContext);
}
関連
-
[解決済み] hw.machine」識別子の信頼性を確認する方法は?
-
[解決済み] キーボードがあるときに、UITextFieldを編集開始時に上に移動させるには?
-
[解決済み] iOSまたはmacOSで、インターネット接続が有効かどうかを確認するにはどうすればよいですか?
-
[解決済み] カスタムオブジェクトを含むNSMutableArrayをソートするにはどうすればよいですか?
-
[解決済み] UITableViewの選択を無効にするにはどうすればよいですか?
-
[解決済み] UIViewの角丸とドロップシャドウ?
-
[解決済み] iOSシミュレータでファイルシステムを確認する方法はありますか?
-
[解決済み] リンカーフラグ -ObjC は何をするのですか?
-
[解決済み] iOSアプリをクラッシュさせる確実な方法とは?
-
[解決済み] iPhoneシミュレーターでカメラをテストするには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] UIViewの下に影を描くには?
-
[解決済み] UIImage。リサイズ、そしてクロップ
-
[解決済み] xcodeでiOSアプリのアーカイブを生成できない
-
[解決済み] TabBarのタブビューにプログラムで切り替える?
-
[解決済み] 静的ライブラリのObjective-Cカテゴリ
-
[解決済み] インスタンスからクラス名を取得する
-
[解決済み] UIImageのアスペクト比と幅を維持したリサイズ
-
[解決済み] viewWillAppear:と-viewDidAppear:の違いは何ですか?
-
[解決済み] オプションのメソッドを持つプロトコルを作成するには?
-
[解決済み] CALayerのanchorPointを変更すると、ビューが移動します。