当UINavigation的半透明设置为false时,视图约束会发生变化

时间:2017-03-03 07:23:09

标签: ios autolayout

UINavigationBar的Translucent属性设置为false / (在storyBoard中未选中) 。约束不能按预期工作。

ViewController的功能:自定义相机模块在UIView上显示相机预览。

查看层次结构

  • ViewController的查看

    • 用于显示相机预览的PreviewView( UIView )。 PreviewView和&之间的约束;视图如下。

Constraints

  

当UINavigationBar 半透明

正如您所看到的,约束被设置为等于宽度&高视与超级视图但结果不一样。截图是 landscape / iPad ,但即使在肖像上也是如此。

Result

  

当UINavigationBar是半透明时

另一方面,当UINavigationBar是半透明时,约束可以正常工作。

Result

2 个答案:

答案 0 :(得分:0)

请选中此选择视图控制器 - > IB检查员 - > (延伸边缘) - > enter image description here在顶部栏下请取消选择并尝试。

答案 1 :(得分:0)

也不适合我。

将导航栏更改为isTranslucent = true会更改视图布局。如果isTranslucent == false,则视图origin.y为0.0(在屏幕顶部),但如果isTranslucent == true,则视图origin.y位于(导航栏高度),意味着视图从导航栏下方开始。视图高度相应减少。

为什么会这样?

我的修复是调整布局代码以适应这种变化,但看起来奇怪的是视觉变化会导致这种行为。