正确地使用Interface Builder和Autolayout在UIScrollView中调整UILabel的大小?
我已经在界面构build器中创build了一个简单的视图设置。 以下是它的外观:
视图层次结构很简单:
view - scrollView -- label
滚动视图显示grey
背景锚定到其超级视图顶部,前导,尾部和底部约束为0。
标签显示为yellow
背景,并显示约束。 此外,标签的横向和纵向都拥有content hugging priority
为1000
content hugging priority
,横向和纵向的content compression resistance priority
均为1000
。
在纵向方向上,标签尺寸正确:
然而,在横向方向上,标签的横向尺寸不正确(我打算用标签来填充屏幕的宽度,如图所示,限制较less):
如何在水平方向上将此标签正确地水平放置?
有一个解决scheme给你。
1.用零约束将UIScrollView添加到容器 (UIView):
2.为标签添加约束:顶部,底部,引导,尾随空格= 20。
3.添加约束: label.width = container.width – 40
- 为此,在视图结构树中select标签,点击ctrl并拉到容器。 并select等宽。
- 然后select创build的约束,并转到其实用程序,并将常数值设置为40。
你应该得到以下组件:
运行应用程序,去风景,它的作品!
希望是明确的。 最好的祝福。
为了得到你想要的东西,很难分辨出哪些约束条件需要添加/删除,因为只要不可能满足所有的约束条件,iOS就会保留调整约束条件的权利。
我做了一个空白的项目,你有相同的观点( UILabel
作为UIScrollView
子视图),并作出一些约束,以获得在景观上正确调整UILabel。
但必须检查:
- 确保你从引脚选项设置垂直/水平间距约束,如下所示,并尝试手动删除不需要的约束。