カスタム形状の UIView があります (画像を参照)。そのビューを時々黒い色合いで薄暗くしたいと思います。ただし、アルファを引き下げるだけではうまくいきません。
そこで、同じ形状のビューにサブビューを追加し、そのビューをアルファで薄暗くすることを考えました。これにより、下のバブルのように見えます (画像を参照)。ビューの形状をコピーするにはどうすればよいですか?もう一度サブクラス化する必要がありますか?それとももっと簡単な方法がありますか?
カスタム形状の UIView があります (画像を参照)。そのビューを時々黒い色合いで薄暗くしたいと思います。ただし、アルファを引き下げるだけではうまくいきません。
そこで、同じ形状のビューにサブビューを追加し、そのビューをアルファで薄暗くすることを考えました。これにより、下のバブルのように見えます (画像を参照)。ビューの形状をコピーするにはどうすればよいですか?もう一度サブクラス化する必要がありますか?それとももっと簡単な方法がありますか?
で形を描いていますdrawRect:
。だから、もっと濃い色で描いてください。dimmed
ビューにプロパティを与えます。
@property (nonatomic) BOOL dimmed;
次のようにセッターをオーバーライドします。
- (void)setDimmed:(BOOL)dimmed {
if (dimmed != _dimmed) {
_dimmed = dimmed;
[self setNeedsDisplay];
}
}
次に、 でプロパティを確認しますdrawRect:
。設定されている場合は、暗い色を使用します。それ以外の場合は、明るい色を使用してください。
多くのカスタム作成された UIView でこれを行う必要がない場合、私が知る最も簡単な方法は、その形状を Photoshop などの画像エディターに取り込み、黒色で塗りつぶし、透明度を約 30 ~ 40 にすることです。 % し、目的のビューに重ねます。
最後に、既存の UIView の上に新しい UIView を描画し、40% の黒色にすることで解決しました。ビューを一度描いたので、もう一度描くことができました。