Iphone 如何将scrollview中的labelwidth与ios中具有自动布局的screenwidth匹配

Iphone 如何将scrollview中的labelwidth与ios中具有自动布局的screenwidth匹配,iphone,uiscrollview,ios7,autolayout,Iphone,Uiscrollview,Ios7,Autolayout,我最近开始在我的应用程序中使用autolayout,到了一个地步,我似乎找不到答案 情况很简单: 我有一个ViewController,里面有一个滚动视图。滚动视图应在横向和纵向模式下占用所有空间。在这个scrollview中,我希望有一个标签,它需要足够的空间来显示它的内容,但只能达到当前scrollview宽度的最大值(不应超过屏幕大小)。剩下的文本应该被剪掉 所以基本上我不希望scrollview水平滚动 如果可能,我更喜欢只使用界面生成器的解决方案。关于您的评论:这种情况会发生,因为滚动

我最近开始在我的应用程序中使用autolayout,到了一个地步,我似乎找不到答案

情况很简单:

我有一个ViewController,里面有一个滚动视图。滚动视图应在横向和纵向模式下占用所有空间。在这个scrollview中,我希望有一个标签,它需要足够的空间来显示它的内容,但只能达到当前scrollview宽度的最大值(不应超过屏幕大小)。剩下的文本应该被剪掉

所以基本上我不希望scrollview水平滚动


如果可能,我更喜欢只使用界面生成器的解决方案。

关于您的评论:这种情况会发生,因为滚动视图的大小取决于其内容(请参阅部分)。因此,标签的大小不能取决于滚动视图的大小

有一个解决方法-您可以设置标签和主视图之间的约束,例如:

[self.view addConstraint:[NSLayoutConstraint constraintWithItem:self.label
                                                      attribute:NSLayoutAttributeLeft
                                                      relatedBy:NSLayoutRelationGreaterThanOrEqual
                                                         toItem:self.view
                                                      attribute:NSLayoutAttributeLeft
                                                     multiplier:1.0
                                                       constant:40]];
[self.view addConstraint:[NSLayoutConstraint constraintWithItem:self.label
                                                      attribute:NSLayoutAttributeRight
                                                      relatedBy:NSLayoutRelationLessThanOrEqual
                                                         toItem:self.view
                                                      attribute:NSLayoutAttributeRight
                                                     multiplier:1.0
                                                       constant:-40]];
使用这种方法,标签的左(右)侧和滚动视图的左(右)侧之间至少有40个距离点(因为滚动视图将填充主视图)

或者,您可以在标签的宽度和主视图的宽度之间设置约束。应该是这样的:

[self.view addConstraint:[NSLayoutConstraint constraintWithItem:self.label
                                                      attribute:NSLayoutAttributeWidth
                                                      relatedBy:NSLayoutRelationLessThanOrEqual
                                                         toItem:self.view
                                                      attribute:NSLayoutAttributeWidth
                                                     multiplier:1.0
                                                       constant:-40]];

因此,现在标签的宽度不会大于主视图的
宽度-40

您是否已经观看了WWDC 2012和2013中所有与自动布局相关的会话?我现在已经观看了,并且找到了处理方法,但代价是在标签上设置固定宽度。这不是我想要的,但它完成了任务