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

编辑:我现在才注意到,它是 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。

于 2013-11-12T10:07:38.247 回答