2015-01-03 75 views
0

我花了最近2天试图找出使用故事板的UIScrollview。每当我想到我得到它,一个新的问题出现,现在它缝合无法解决。 (这很简单):使用Imageview和textview垂直滚动UIScrollview

我有一个Imageview 400x185采取scrollview(边缘到边缘)的整个宽度。这意味着scrollview具有imageview的宽度。 下面是一个textview,其中< = imageview的宽度。

我使用了很多在stackoverflow上描述的方法: - 在scrollview上使用一个视图,并设置宽度与scrollview的父级相同。 - 仅使用没有视图的滚动视图

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

有人可以使用上述UI制作示例项目吗?知道如何处理它的人需要5分钟的时间。

+0

UIViewController的UIView大小是多少?换句话说,'UIScrollView'扩展了整个屏幕吗? – aytunch

+0

@aytunch UIView的大小是400x600。 UIScrollView放在UIView上,它需要整个尺寸 – n0ne

回答

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的大小应该完全受到限制。它从宽度为400的imageView宽度获得宽度,并固定在contentView的两侧。它从imageView的常量距离中获取其高度+ imageView的高度+ imageView和textView之间的恒定距离+ textView的高度+ textView到contentView底部的恒定距离。


如果你希望你的滚动视图只垂直滚动,则限制了内容查看宽度与滚动视图的宽度。这很容易在Document Outline视图中完成,方法是从contentView拖动到scrollView,然后从弹出窗口中选择等宽

+0

谢谢你的回答!唯一让我困扰的是,当我将imageview的宽度固定为400时,在iphone5模拟器上还有一个水平滚动条。我想要的内容缩放到iPhone屏幕的大小,所以只有垂直滚动条出现。我怎样才能做到这一点? – n0ne

+0

将contentView的宽度限制为viewController中顶级视图的宽度,该宽度与手机的宽度匹配。最简单的方法是使用文档大纲视图,控制从contentView拖动到顶部视图,然后从弹出窗口中选择“等宽”。确保你删除了imageView约束,否则你最终会遇到冲突的约束。 – vacawama

+0

然后,您可能想要移除imageView的宽度和高度约束,将其顶部,左侧和右侧边缘约束到containerView,然后使用AspectRatio约束将图像宽度约束为高度,以达到400:185的比例。 – vacawama