【发布时间】:2014-09-20 03:36:01
【问题描述】:
我想在我的 iOS 应用中使用自定义视图,所以我在自定义视图的 xib 上放了一些 UI 组件,并为其添加了一些自动布局约束,然后运行模拟器,结果很好。
但是,我不喜欢让自定义视图覆盖整个窗口,而我想让它只覆盖窗口的一部分。所以我从代码中改变了它的大小,比如:
let detailView = NSBundle.mainBundle().loadNibNamed("DetailTaskView", owner: self, options: nil)[0] as DetailTaskView
detailView.frame = CGRectMake(20, 80, 280, 280)
但是,生成的自定义视图在大小方面很好,但是那里的组件没有正确对齐。特别是,尽管我将顶部约束 (8px) 添加到 UILabel 并将底部约束 (8px) 添加到 UIButton(以及两个组件的水平约束),但生成的自定义视图不会显示 @ 987654324@,看起来自定义视图的唯一顶部已被移除,而不是中间部分被切掉。
那么如何使用自定义尺寸的自定义视图呢?
更新
这是我的自定义视图:
[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
【问题讨论】:
-
如果您也有正确的水平约束,您所说的应该会奏效。你有什么水平限制?
-
@rdelmar,我添加了水平约束,但我认为它与问题无关。但更新了原帖。
-
如果按钮到视图底部的底部约束为 8,则不应发生这种情况。按钮上还有其他垂直限制吗?
-
我发现问题出在标签的高度太大(或高?大?),导致按钮无法显示在视图上。谢谢,@rdelmar。
标签: ios uiview swift autolayout