Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/111.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何设置autolayout,以便UILabel调整大小并根据需要移动其他视图_Ios_Autolayout_Uilabel - Fatal编程技术网

Ios 如何设置autolayout,以便UILabel调整大小并根据需要移动其他视图

Ios 如何设置autolayout,以便UILabel调整大小并根据需要移动其他视图,ios,autolayout,uilabel,Ios,Autolayout,Uilabel,我有一个标签在纵向模式下包装(2行),但在横向模式下包装(1行): 我想设置自动布局,以便标签可以根据需要调整大小,并根据标签上下移动其他视图。然而,我不太明白如何在iOS故事板中设置这个。感谢您的帮助 Thanx提前。如果我理解正确,您需要两样东西: 使用故事板根据文本长度调整标签大小,这可以通过进入属性检查器并将行设置为0和换行模式设置为WordWrap来实现。还附上一张图片供参考 . 只需一些额外的信息,您也可以使用以下代码以编程方式实现它: myLabel.numberOfLines

我有一个标签在纵向模式下包装(2行),但在横向模式下包装(1行):

我想设置自动布局,以便标签可以根据需要调整大小,并根据标签上下移动其他视图。然而,我不太明白如何在iOS故事板中设置这个。感谢您的帮助


Thanx提前。

如果我理解正确,您需要两样东西:

  • 使用故事板根据文本长度调整标签大小,这可以通过进入属性检查器并将
    行设置为
    0
    换行模式
    设置为
    WordWrap
    来实现。还附上一张图片供参考 . 只需一些额外的信息,您也可以使用以下代码以编程方式实现它:

    myLabel.numberOfLines = 0
    myLabel.lineBreakMode = .byWordWrapping
    
  • 根据标签的大小移动其他视图,这可以通过针对要推送的视图设置约束来实现。你可以参考苹果的文档,很容易掌握,并演示如何一步一步地做到这一点


  • 您必须设置视图相对于标签的垂直间距。这很容易。你还不明白什么?你做了什么,正在发生什么或没有发生什么反应?我是iOS开发新手,所以这对我来说并不容易。我已将#of lines设置为0,启用了换行,并将前端绑定到屏幕的左边缘,将后端绑定到屏幕的右边缘。但是,当我预览纵向和横向模式时,UILabel不会更改。一旦UILabel开始工作,我将堆叠其他视图。感谢您提供苹果文档的链接。我在UILabel上遇到了最大的麻烦(见我上面的评论),但是重置为建议的约束似乎已经成功了。我不知道它和我做的有什么不同,但我会进一步调查。此外,在模拟器中构建并运行应用程序后,故事板似乎没有准确显示视图的样子。在模拟器中,一切看起来都很好,但在故事板中,视图都被扰乱了。这是典型的吗?不客气。因此,“重置为建议约束”所做的是覆盖给定约束,并添加满足视图要求的系统定义约束。约束应该由用户而不是系统决定。在阅读了你对问题的最后评论之后。我认为您忘记了将标签顶部和底部的约束添加到周围的视图,我认为当您重置为建议的约束时,系统为您添加了这些约束。故事板应接近模拟器/设备中视图的外观。您使用的是什么版本的Xcode?我想给您的一个建议是,如果您使用的是iOS 9及以上版本,您可以使用UIStackView,它可以为您处理视图之间的约束,并且相对容易使用。这是一个很好的学习资源