UIScrollView具有多个TextView和ImageView布局问题

时间:2014-09-15 09:43:10

标签: xcode uiscrollview uitextview autolayout ios8

我有一个视图,其中我放置了一个适合整个视图的scrollView。在scrollView里面,我有一个textView,在imageView下面,在textView下面,等等。 textViews中填充了ViewController中带有本地化文本的内容,因此其高度将根据语言而变化。我给了textViews顶部,底部,左侧和右侧的约束,每个约束10个。 ImageViews我给出了顶部和底部的约束,每个约束10,宽度200并且以容器水平为中心。每个图像的图像高度不同,并且没有给出高度约束。

enter image description here

第一个结果是,scrollView获得了本地化文本最长文本的宽度。

我换了
  1. 滚动视图

    • 内容拥抱优先级为995,垂直为250。
  2. textViews

    • 内容拥抱优先级水平400和200垂直,
    • 内容压缩阻力优先级水平为200,垂直750。
  3. 纵向模式下的完美结果。更改为横向时,scrollView的宽度保持为320并与左侧对齐。

    如何解决问题让scrollView占据屏幕宽度的100%而不让textViews有机会将自己放大到100%宽度?

1 个答案:

答案 0 :(得分:0)

找到解决方案:

scrollView有约束:top / bottom 8和left / right 0各自为superview。

textViews有顶部,左侧,底部和右侧的约束。

图像具有顶部,底部和宽度的约束,以容器中的X为中心。

这导致textViews占用一行并增长到巨大的宽度。

然后我将textViews集中到Container中的X并选择所有textViews和图像并将它们居中。

现在,无论是肖像还是风景,scrollView都需要100%的屏幕宽度,高度。

因此对于所有可能存在相同问题的人来说:scrollView看起来比视图小一点,添加时的约束是左右0和顶部/底部> 0。在视图中拖放scrollView时,它占用视图大小的100%。那就是问题,限制是-16。将scrollView设置为x = 16和width = 288可以使视图正确拟合!接下来给出textViews约束顶部/左侧/底部/右侧并将其居中到容器(即使偏移到实际中心,项目的右侧是0预定义 - 将其更改为使用当前画布值)。