0

カスタム形状の UIView があります (画像を参照)。そのビューを時々黒い色合いで薄暗くしたいと思います。ただし、アルファを引き下げるだけではうまくいきません。

そこで、同じ形状のビューにサブビューを追加し、そのビューをアルファで薄暗くすることを考えました。これにより、下のバブルのように見えます (画像を参照)。ビューの形状をコピーするにはどうすればよいですか?もう一度サブクラス化する必要がありますか?それとももっと簡単な方法がありますか?

画像

4

3 に答える 3

2

で形を描いていますdrawRect:。だから、もっと濃い色で描いてください。dimmedビューにプロパティを与えます。

@property (nonatomic) BOOL dimmed;

次のようにセッターをオーバーライドします。

- (void)setDimmed:(BOOL)dimmed {
    if (dimmed != _dimmed) {
        _dimmed = dimmed;
        [self setNeedsDisplay];
    }
}

次に、 でプロパティを確認しますdrawRect:。設定されている場合は、暗い色を使用します。それ以外の場合は、明るい色を使用してください。

于 2012-12-01T08:54:37.923 に答える
0

多くのカスタム作成された UIView でこれを行う必要がない場合、私が知る最も簡単な方法は、その形状を Photoshop などの画像エディターに取り込み、黒色で塗りつぶし、透明度を約 30 ~ 40 にすることです。 % し、目的のビューに重ねます。

于 2012-12-01T08:31:58.723 に答える
0

最後に、既存の UIView の上に新しい UIView を描画し、40% の黒色にすることで解決しました。ビューを一度描いたので、もう一度描くことができました。

于 2012-12-08T21:08:39.793 に答える