我有一个UILabel的出口。标签是“安装”为任意宽度和任何高度,但“卸载”为紧凑宽度和任何高度。
当我使用iPhone 5模拟器(紧凑宽度,任何高度)运行此项目时,我仍然可以看到有效的插座。为什么是这样?不应该是零还是什么?我也认为它有效但只是隐藏(我看不到插座,但是隐藏是假的)。会发生什么事?
我错过了什么?
提前致谢!
答案 0 :(得分:1)
来自Apple's Size Classes Design Help
仍会创建已卸载视图的运行时对象。然而, 视图和任何相关约束都不会添加到视图中 层次结构和视图的superview属性为nil。这是 不同于隐藏。隐藏视图位于视图层次结构中 和任何相关的约束一样。
如果您查看已卸载run
的{{1}}属性,则会看到它是superView
。
如果出口本身为零,如果您尝试访问它,则可能会出现问题;您的代码必须显式检查活动大小类并调整其行为。通过仍然创建对象但不将其添加到视图层次结构中,您的代码仍然可以在标签上操作,只是这些操作不会产生任何明显效果。