是否可以在可可中调暗当前视图?在某个操作上,我想让屏幕变暗一点,并防止用户与屏幕交互。
问问题
913 次
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 回答