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

Ios Xcode:如何在视图顶部添加黑色层?,ios,objective-c,Ios,Objective C,我正在尝试创建我的第一个iphone应用程序,我的视图应该是漆黑一片。我的视图已正确连接到控制器(当我运行模拟器时,我的标签会显示) 我想添加一个黑色层(这样屏幕看起来像是iphone关闭了)。不仅如此,当用户按下屏幕或与屏幕交互时,它应该只在黑色层上触发这些动作。我会在那层下面有一些东西,比如标签 当我在控制器中将亮度设置为0.0并运行模拟器时,它仍然显示视图: - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundl

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

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

当我在控制器中将亮度设置为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.
    }
-(id)initWithNibName:(NSString*)nibNameOrNil bundle:(NSBundle*)nibBundleOrNil
{
self=[super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
如果(自我){

[[UIScreen Main Screen]setBrightness:0.0];/您必须将
setBrightness
语句放在
-(void)application idbecomeactive:(UIApplication*)application
中——它对其他任何地方都没有影响。要在应用程序之后进行清理,您应该恢复
-(void)application willresignactive:(UIApplication*)中的亮度应用程序

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

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

这将呈现要隐藏的视图(
viewIWantToObscure
)完全变黑。至于您要求的第二部分,即通过视图进行触摸,有关发送触摸视图层次结构的更多信息。

只需添加一个子视图,该子视图的黑色背景颜色与视图控制器的边框相同,并添加仅由该视图识别的手势识别器。否te:如果您在视图控制器的视图中添加了任何手势识别器,那么这些手势识别器也将在黑色视图中拾取。