UIScrollView有多个多行标签和AutoLayout?

时间:2015-08-24 00:51:11

标签: ios objective-c uiscrollview uilabel

有没有办法实现这个目标?我已经尝试了一切,但对我来说没有任何效果。

基本上我想要做的是以下内容:我有一个滚动视图,其中包含一些标签。所有标签都从服务器获取文本,我将其行数设置为0,以便根据文本量更改其高度。但是,这不会影响scrollview内容大小(即使我的标签设置了滚动视图的底部,顶部,前导和尾部的约束),标签也会离开屏幕,我无法向下滚动。有人能指出我如何设置我的约束,我的视图层次等方面的正确方向吗?

非常感谢任何帮助! :)

3 个答案:

答案 0 :(得分:0)

我会考虑使用UITableView,它有几个好处:

  1. 如果所有单元看起来相同,它允许重复使用单元
  2. 当您从服务器获取的值的数量增加时(当单元格数量变得很大时降低内存压力),它管理单元的回收。
  3. 它允许内容更灵活(设计经常改变最后一秒或在项目过程中发展)
  4. 最重要的是,UITableView支持自动调整大小单元格(从iOS8开始),您需要指定标签与单元格边框之间的约束
  5. 有几种资源可以开始:

答案 1 :(得分:0)

  1. 在scrollView中使用容器视图
  2. 向superview添加约束(前导,尾随,顶部,底部,高度,宽度)
  3. 制作您要更新的约束的IBOutlet。
  4. 在该视图中添加所有标签。
  5. 更新标签的约束/框架,使其适合文字。
  6. 您应该增加标签高度多少,也应该增加容器高度。
  7. 如果未修复标签计数,请使用自定义标签类添加子视图。
  8. 也许您应该了解ScrollView如何在Storyboard中使用自动布局。

答案 2 :(得分:0)

后来,但这为我解决了这个问题:

  1. 设置前导(我有32pt的插图),尾随和顶部约束。尾随实际上并不会执行任何操作。.

  2. 进行结尾的Greater Than or Equal以避免本地化警报。

  3. 最后,向与滚动视图匹配的标签添加新的Equal Width约束。使用常量减去所需的填充(由于镜像了我的前导插图,我使用了64)。

瞧瞧!标签将在IB和应用内均正确​​对齐。