5

私は長い間答えを探していましたが、自分で解決しようとしましたが、できませんでした。これは質問するのに最適な場所だと思います. だから私は何か簡単なことを達成しようとしていますが、それを行う方法を見つけることができません。概念レベルで何かが欠けていると思います。これは、UIView をサブクラス化しているクラス内に半透明の四角形を作成しようとする方法です。

- (void)drawRect:(CGRect)rect
{
    CGContextRef context = UIGraphicsGetCurrentContext();
    //this should be white color with 0.7 opacity right
    CGContextSetRGBFillColor(context, 1.0, 1.0, 1.0, 0.7);
    CGContextFillRect(context, self.bounds);
}

わかりました、これは色を灰色にするだけです。これも試してみましたが、同じ結果になりました: CGContextSetRGBFillColor(context, 1.0, 1.0, 1.0, 1.0);
CGContextSetAlpha(コンテキスト、0.7);

別の試み:

- (void)drawRect:(CGRect)rect
{
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextSetRGBFillColor(context, 1.0, 1.0, 1.0, 1.0);
    CGContextFillRect(context, self.bounds);

    self.alpha = 0.7;
}

出来上がり!私はそれを解決しました。しかし、正確ではありません。コンテキストで半透明の長方形を描画し、ビュー全体を透明にしたくありません。次に、たとえば、完全に不透明な別の長方形を追加します。ご意見をお待ちしております。ありがとう。

4

2 に答える 2

2

あなたはこれを使うことができます、

[[UIImage imageNamed:@"semiTransparentImage.png"] drawInRect:rect blendMode:kCGBlendModeDestinationOut alpha:1.0];
于 2013-10-07T08:00:28.610 に答える