如何以编程方式添加安全区域

Nam*_*Nam 8 objective-c ios ios11 xcode9 safearealayoutguide

打开视图时,它将如下图所示,

我打电话x打开视图

我打电话8打开视图

对于iphone x,我想在当前视图中以编程方式添加安全区域.

尝试的来源如下.

UIView *view = self.view;

if (@available(iOS 11.0, *)) {
    UILayoutGuide * guide = view.safeAreaLayoutGuide;
    [view.topAnchor constraintEqualToAnchor:guide.topAnchor].active = YES;
    [view.bottomAnchor constraintEqualToAnchor:guide.bottomAnchor].active = YES;
}
Run Code Online (Sandbox Code Playgroud)

我想应用这个来源,但我不知道该怎么做.

请回答我的问题.

Kru*_*nal 8

这是安全区域布局的示例代码。在Objective-C中尝试此操作,请参见:

UIView * myView = // initialize view using IBOutlet or programtically

myView.backgroundColor = [UIColor red];
myView.translatesAutoresizingMaskIntoConstraints = NO;

UILayoutGuide * guide = self.view.safeAreaLayoutGuide;
[self.myView.leadingAnchor constraintEqualToAnchor:guide.leadingAnchor].active = YES;
[self.myView.trailingAnchor constraintEqualToAnchor:guide.trailingAnchor].active = YES;
[self.myView.topAnchor constraintEqualToAnchor:guide.topAnchor].active = YES;
[self.myView.bottomAnchor constraintEqualToAnchor:guide.bottomAnchor].active = YES;

// Refresh myView and/or main view
[self.view layoutIfNeeded];
//[self.myView layoutIfNeeded];
Run Code Online (Sandbox Code Playgroud)

参考:以编程方式使用安全区域布局

结果:

在此处输入图片说明