3

UIView を一定量「暗く」したいと思います。現在、私は次のように暗くしています。

UIView *overlay = [[UIView alloc] initWithFrame:mainView.bounds];
overlay.backgroundColor = [UIColor blackColor];
overlay.alpha = 0.5f;
[mainView addSubview:overlay];

残念ながら、これにより、透明な部分に半透明の黒いオーバーレイも追加されますmainView。透明でない部分だけを暗くする方法はありますか?

4

2 に答える 2

6

ここに試してみるものがあります。UIRectFillUsingBlendMode を使用したことがありません。

-(void) drawRect:(CGRect)inDirty {
  [[UIColor colorWithWhite:0.0 alpha:0.5] setFill];
  UIRectFillUsingBlendMode( inDirty , kCGBlendModeDarken );
}

これを実装するビューは、影響を与えたい他のビューのみと合成するように設定する必要があります。これはおそらく、このビューと暗くしたい他のすべてのビューを含む 1 つの親ビューを意味します。

CGContextSetBlendMode を調べることもできます。

于 2010-04-16T01:27:38.677 に答える
0

このようなものを使用してみてください(明らかに色を調整してください)?

overlay.backgroundColor = [UIColor colorWithRed:0.317647 green:0.317647 blue:0.317647 alpha:0.85];

于 2010-04-16T01:17:21.400 に答える