是否可以在cocoa中调暗当前视图?在某个操作中,我想让屏幕变得更暗,并阻止用户与屏幕交互。
答案 0 :(得分: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>
答案 1 :(得分:1)
编辑:我现在才注意到,它是OSX,而不是iOS。虽然这个想法仍然应该是一样的。
禁用用户互动:
[self.view setUserIntractionEnabled:NO];
然后添加一个黑色的UIView,其上面的alpha为0.2。
UIView *transparentBlackView = [[UIView alloc] initWithFrame:self.view.frame]
[transparentBlackView setBackgroundColor:[UIColor blackColor];
[transparentBlackView setAlpha:0.2];
[self.view addSubview:transparentBlackView];
然后你可以编写一个自定义方法,并使用performSelector:afterDelay删除transparentBlackView。