如何在iOS中使用自定义视图进行自动布局?

时间:2014-09-20 03:36:02

标签: ios uiview swift autolayout

我想在我的iOS应用程序中使用自定义视图,因此我在自定义视图的xib上放置了一些UI组件并为其添加了一些自动布局约束,并运行了模拟器,结果很好。

但是,我不喜欢让自定义视图覆盖整个窗口,而是我想让它只覆盖窗口的某些部分。所以我在代码中更改了它的大小,例如:

let detailView = NSBundle.mainBundle().loadNibNamed("DetailTaskView", owner: self, options: nil)[0] as DetailTaskView
detailView.frame = CGRectMake(20, 80, 280, 280)

然而,结果自定义视图在大小方面很好,但是那里的组件没有正确对齐。特别是,尽管我向UILabel和底部约束(8px)添加了顶部约束(8px)到UIButton(以及两个组件的水平约束),但结果自定义视图没有显示UIButton,看起来自定义视图的唯一顶部部分被取消而不是中间部分被切断。

那么如何使用自定义尺寸的自定义视图?

更新

这是我的自定义视图:

[label]
--empty--
[button]

我想要展示的内容如下:

[label]
[button]
// the empty part on the middle is chopped off in 4inch iPhone

然而,这是我得到的结果:

[label]
--empty--
// and the button on the bottom is chopped off

1 个答案:

答案 0 :(得分:-2)

你的xib主视图是否设置为280x280像素?如果是这样,那么你设置的任何约束应该保持 - 换句话说,如果你的标签和按钮适合280x280 xib,那么它们应该在运行时正确显示。它还可以帮助在标签的底部和按钮的顶部之间设置垂直间距约束。还要确保包含自定义视图的任何视图都不会将自定义视图的大小设置为您所期望的大小。

相关问题