【问题标题】:UIViewController subviews added in interface builder not showing up界面生成器中添加的 UIViewController 子视图未显示
【发布时间】:2017-12-05 12:59:44
【问题描述】:

好的,基本上我只是使用带有自动布局的界面构建器来向我的 UIViewController 添加一些子视图和约束。当用户想要拍照时,我的应用程序应该继续使用此视图。我在一个黑色的方形 UIView 上布置了几个相机按钮,一旦我对它进行编程,它们将用作相机视图。因为我想让相机视图变成一个正方形,所以我还有一些额外的空间,我只是做了一个标签,上面写着“拍照!”这是这个视图控制器的界面构建器的外观:

这就是我运行应用程序时相同视图的外观:

我猜是我遗漏了一些简单的东西导致了这个问题,但我会感谢任何可以帮助我的人!

【问题讨论】:

  • 请确保您已将您的视图控制器从情节提要连接到 viewcontroller.swift。
  • 是的,zohaib 是对的。确保视图控制器通过 segue 正确连接。其次,确保您的子视图约束是有序的,并且它们组织得当,具有适当的层次结构。
  • 是的,我确保它已通过 segue 正确连接。我也可以说,因为导航栏上有视图控制器的标题。我认为约束很可能是这种情况下的原因
  • 好的,设置高度约束确实有效,并且使子视图出现,但我仍然希望 UIView 在所有屏幕尺寸上都是正方形。因此,设置一个恒定的高度是行不通的。如何将高度设置为等于宽度
  • 向视图添加纵横比 1 : 1 约束。它将宽度和高度关系设置为 1 : 1。

标签: ios iphone uiviewcontroller autolayout subview


【解决方案1】:

当您使用自动布局时,您应该为视图设置所有需要的约束。否则这是一个模糊的布局问题,系统不知道在哪里设置你的视图

如果您希望高度与宽度相同,请将纵横比约束设置为您的视图

并确保约束的乘数为 1

【讨论】:

    【解决方案2】:

    将该子视图放在前面,将所有其他视图放在后面 试试就行了

    parentView.bringSubview(toFront: childView)

    此方法也可用于将任何子视图置于最前面,即使您不确定它在哪里:

    childView.superview.bringSubview(toFront: childView)

    【讨论】:

      猜你喜欢
      • 2014-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-31
      • 2014-01-17
      • 1970-01-01
      相关资源
      最近更新 更多