dev*_*os1 11 objective-c uiview ios autolayout
我有一个xib文件,表示我正在实例化的自动布局的简单视图,[[NSBundle mainBundle] loadNibNamed:@"name"][0]并添加到以编程方式创建的UIViewvia addSubview:.
问题是视图没有拉伸以满足嵌入视图的大小; 相反,它似乎默认为xib文件中指定的大小.(我也找不到任何方法在xib文件中设置容器视图本身的约束,只有它的子视图.)
同样奇怪的是,当我旋转iPad时,视图的宽度会进一步缩小.所以它显然以某种方式接线,但错误的初始值.
我缺少什么连接才能使此嵌入视图正确适合视图层次结构?
截图(为调试添加的洋红色着色):

旋转到肖像后:

Ken*_*ses 18
它没有调整自己以填补其新的超级视图的原因是你没有安排它来做它.简而言之,您需要在代码中添加约束,以便在将两个视图添加到另一个视图之后关联它们.
最有可能的是,IB将视图设置为将其自动调整掩码转换为约束.当NIB设置为使用自动布局时,很难确定其自动调整掩码的内容.
无论如何,当您将其添加到superview时,自动生成的约束将保持其当前帧.当superview调整大小时,它们会根据自动调整大小调整大小(可能允许宽度和高度变化,但不能改变到超视图边缘的距离).
当您使用自动布局时,您应该执行以下操作:
或者关闭translatesAutoresizingMaskIntoConstraints在NIB 或在其中将其添加到上海华代码将其关闭.您采用哪种方法取决于您是否预期视图将作为管理其子视图布局的框架视图类的子视图添加.如果你愿意,那么你应该把它留在NIB中,让那个班级决定是否关掉它.
将视图添加到其超级视图后,向超级视图添加约束,以控制视图的布局位置.
| 归档时间: |
|
| 查看次数: |
14174 次 |
| 最近记录: |