Xcode:我如何在视图顶部添加黑色图层?

时间:2014-05-26 18:37:30

标签: ios objective-c

我正在尝试创建我的第一个iPhone应用程序,我有一个应该是漆黑的视图。我的视图已正确连接到我的控制器(当我运行模拟器时,我的标签显示)。

我想添加一个黑色图层(因此屏幕看起来像iphone关闭)。不仅如此,当用户推动或与屏幕交互时,它应该仅在黑色层上触发这些动作。我将在该层下面有一些东西,比如标签persay。

当我在控制器中将亮度设置为0.0并运行模拟器时,它仍会显示视图:

    - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
    {
        self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
        if (self) {
            [[UIScreen mainScreen] setBrightness: 0.0]; //<-- here
            // Custom initialization
        }
        return self;
    }

    - (void)viewDidLoad
    {
        [super viewDidLoad];
        [[UIScreen mainScreen] setBrightness: 0.0]; //<-- here as well. but nothing happens
        self.navigationItem.hidesBackButton = YES;
        // Do any additional setup after loading the view.
    }

另外,我觉得设置亮度仍然会让用户与屏幕进行交互,这不是我想要的。有人可以帮忙吗?我可以添加黑色图像吗?

2 个答案:

答案 0 :(得分:0)

您必须将setBrightness语句放在- (void)applicationDidBecomeActive:(UIApplication *)application中 - 它在任何其他地方都没有效果。要在应用后清理,您应该在- (void)applicationWillResignActive:(UIApplication *)application恢复亮度。

答案 1 :(得分:0)

您可以在当前视图的顶部添加一个完全黑色的UIView

UIView *blackView = [[UIView alloc] initWithFrame:[UIScreen mainScreen].bounds];
blackView.backgroundColor = [UIColor blackColor];
[viewIWantToObscure addSubview:blackView];

这会使您想掩盖的视图(viewIWantToObscure)完全变黑。至于您的要求的第二部分,触摸视图,更多关于发送触摸视图层次结构can be found here的信息。