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