在Storyboard中添加的UIView的iOS超级视图是零

时间:2015-03-25 03:31:34

标签: ios uiview

我的UIViews遇到了一些意想不到的行为,所以我决定打印出有关视图及其超级视图的一些信息。当我试图这样做时,我的UIViews的超级视图返回了nil。

我试图打印超级视图的UIViews被添加到Storyboard中的视图控制器中(通过从对象库中拖放),然后使用IBOutlet与视图控制器代码文件连接。此外,已在Identity Inspector中设置了正确的视图控制器代码文件类。具体来说,我的视图是UIPickerView,UILabel和UITextField。当我尝试访问这些UIViews的超级视图时,我得到了零。我的印象是,当通过Storyboard添加UIViews时,它们成为视图控制器的视图层次结构的一部分。所以我的问题是:

1)我的假设是错的吗?那就是假设是零?如果是这样,那么当使用Storyboard或一些参考文档添加UIView时,获得有关如何设置视图层次结构的解释会很棒

2)如果它不是假的,那么可能会使superview为零?

2 个答案:

答案 0 :(得分:5)

如果将视图添加到与您运行的大小不同的大小类,则会发生这种情况。通过将故事板中的大小更改为W:Any H:Any,您可以获得所有设备类型的全部功能。

Storyboard Size Classes

答案 1 :(得分:1)

如果superviewnil,则视图不在视图层次结构中。您可能在添加视图之前检查。尝试检查awakeFromNib方法。此时已建立层次结构。