3

ココアで現在のビューを暗くすることは可能ですか?特定のアクションで、画面を少し暗くして、ユーザーが画面を操作できないようにしたいと考えています。

4

2 に答える 2

3

@Lord Zsolt によって与えられたアイデアから、同じことを OS X で次のように実装できます。

ウィンドウを暗くしたい場合は、次のコードを追加します。

NSView *transparentBlackView = [[NSView alloc] initWithFrame:[[yourwindow contentView] frame]];

CALayer *viewLayer = [CALayer layer];
[viewLayer setBackgroundColor:CGColorCreateGenericRGB(0.0, 0.0, 0.0, 0.4)]; //RGB plus Alpha Channel
[transparentBlackView setWantsLayer:YES]; 
[transparentBlackView setLayer:viewLayer];

[[yourwindow contentView] addSubview:transparentBlackView];

QuartzCore.frameworkまた、プロジェクトに追加することを忘れないでください。そして、それをクラスにインポートします#import<QuartzCore/QuartzCore.h>

于 2013-11-12T11:08:45.450 に答える
1

編集:今気づいたのですが、iOSではなくOSXです。考え方は変わらないはずなのに。

ユーザーの操作を無効にします。

[self.view setUserIntractionEnabled:NO];

次に、その上に 0.2 のような黒色の UIView を追加します。

UIView *transparentBlackView = [[UIView alloc] initWithFrame:self.view.frame]
[transparentBlackView setBackgroundColor:[UIColor blackColor];
[transparentBlackView setAlpha:0.2];
[self.view addSubview:transparentBlackView];

その後、カスタム メソッドを記述し、performSelector:afterDelay を使用して transparentBlackView を削除できます。

于 2013-11-12T10:07:38.247 に答える