使用Imageview和textview垂直滚动UIScrollview

时间:2015-01-03 10:12:46

标签: uiscrollview uiimageview storyboard autolayout uitextview

我花了两天的时间试图用故事板找出UIScrollview。每当我认为我得到它时,就会出现一个新问题,现在它接缝无法解决。 这是我正在尝试做的事情(这很简单):

我有一个Imageview 400x185,它占据了滚动视图的整个宽度(边缘到边缘)。这意味着scrollview具有imageview的宽度。 下面是一个文本视图,其中< = imageview的宽度。

我使用了stackoverflow上描述的许多方法: - 使用滚动视图上的视图并将宽度设置为与滚动视图的父级相同。 - 仅使用没有视图的滚动视图

所有这些都会产生图像帧大小的错误,scrollview子视图的大小,约束,textview没有显示或者图片太大,即使我将约束边缘设置为边缘。

有人可以使用上述用户界面制作示例项目吗?对于知道如何处理它的人来说,需要5分钟。

1 个答案:

答案 0 :(得分:0)

我刚刚这样做了。我知道它有效。以下是我的建议:

  1. 确保您的400x600视图被限制为宽度400和高度600.

  2. 向此视图添加滚动视图。让它占据整个视图然后固定顶部,底部,左侧和右侧。

  3. 将UIView添加到滚动视图。让它占据整个视图,然后将顶部,底部,左侧和右侧固定。这是您的内容视图。我将文档大纲中的我重命名为" ContentView"。此时,您将收到有关模糊内容大小的警告,因为在您添加更多约束之前,内容视图可以增长到任何大小。

  4. 内容视图的大小将由内容决定,因此需要完全约束它们。将imageView添加到内容视图。将其宽度限制为400,将其高度限制为185.将其固定在contentView的左侧,顶部和右侧。此时,contentView将知道它是400宽,但它仍然不知道它有多高。

  5. 将textView添加到contentView。将它与imageView固定距离。将其限制为以其contentView为中心。将它固定在距离contentView底部一定距离处。将宽度限制在小于400的范围内,将其高度限制为600以下的大小。

  6. 此时,应完全限制contentView的大小。它从imageView的宽度获得宽度,宽度为400宽,并固定在contentView的两侧。它从imageView的顶部距离+ imageView的高度得到它的高度+ imageView和textView之间的恒定距离+ textView的高度+从textView到contentView底部的恒定距离。


  7. 如果希望scrollView仅垂直滚动,则将contentView宽度约束为scrollView宽度。通过控制从contentView拖动到scrollView,然后从弹出窗口中选择 Equal Widths ,可以在Document Outline视图中轻松完成此操作。