在浏览界面构建器上查找Xcode9 Beta Found Safe Area时查看层次结构查看器.好奇并试图了解苹果上的安全区文档,主要是文档说"与Auto布局直接交互的视图区域"但它不满足我,我想知道这个新事物的实际用途.
有人有一些线索吗?
结论段落来自Apple doc for Safe area.
UILayoutGuide类旨在执行先前由虚拟视图执行的所有任务,但是以更安全,更有效的方式执行.布局指南不定义新视图.它们不参与视图层次结构.相反,他们只是在他们自己的视图的坐标系中定义一个矩形区域,可以与自动布局进行交互.
由于我不使用故事板来创建我的视图,我想知道是否有编程方式的"使用安全区域指南"选项或类似的东西.
我试图将我的观点固定在
view.safeAreaLayoutGuide
但它们仍然与iPhone X模拟器中的顶级重叠.
警告: leading or trailing horizontal alignment before iOS 11
在故事板文件中的一个场景上编译Xcode 9.1时,我收到了警告.还有其他故事板(部署目标为iOS 10.0),但警告会显示在特定Storyboard文件的特定场景中.
如果我在显示警告的场景上将部署目标更改为iOS 11.0但是我不想这样做,则警告会被抑制.
有人遇到这个案子吗?
我想使用Apples可视化格式语言将视图约束到iOS 11中的新安全区域布局指南.但是,我得到一个例外:
- [NSLayoutYAxisAnchor nsli_superitem]:无法识别的选择器发送到实例0x1c447ed40
//Make View Dictionary
var views: [String: Any] = ["left": self.leftContainer]
//Check swift version and add appropriate piece to the view dictionary
if #available(iOS 11, *) {
views["topGuide"] = self.view.safeAreaLayoutGuide.topAnchor
}else{
views["topGuide"] = self.topLayoutGuide
}
//Make the constraint using visual format language
let leftVertical = NSLayoutConstraint.constraints(withVisualFormat: "V:[topGuide][left]|", options: [], metrics: nil, views: views)
//Add the new constraint
self.view.addConstraints(vertical)
Run Code Online (Sandbox Code Playgroud)
我喜欢可视化格式语言的原因是因为在某些情况下你可以用更少的代码添加很多约束.
有任何想法吗?
autolayout visual-format-language swift ios11 safearealayoutguide
我刚刚将我的应用程序从支持iOS 8改为支持iOS 9及更高版本.我相信我已经做到了这一点,因为当我现在构建我的应用程序时,我会收到应用程序中所有在iOS 9中弃用的警告.
我正在使用Xcode 9,转基因种子.
问题是我无法在任何故事板中启用"使用安全区域布局指南"切换.当我这样做时,我收到一条警告"iOS 9.0之前的安全区域布局指南".我需要更新一些额外的设置吗?干净和构建没有解决问题.
请查看附件图片.Viewcontroller的视图背景颜色为蓝色.如您所见,此颜色延伸到状态栏下方和主页指示器下方.底部有一个白色视图,这是一个按钮.这里的白色视图位于安全布局指南中.
我希望在家庭指示器下方延伸相同的白色,而不为iPhone-X添加任何其他视图.
这该怎么做?
ios ×7
swift ×4
iphone-x ×3
xcode9 ×3
autolayout ×2
ios11 ×2
xcode ×2
iphone ×1
storyboard ×1
xib ×1