0

我有一个非常简单的看法。它只是一个带有 aUISCrollView和 aUIImageView下面的视图。里面UIScrollView我有一个很大的UIImageView。现在我需要设置UIScrollview它正在contentsize使用的autolayout.

但我不知道我该怎么做?这是我的故事板的样子。

在此处输入图像描述

我试图将UIImageView内部 aUIView并使其UIView成为 de 的唯一孩子,UIScrollView但这也行不通。关闭自动布局不是一个选项,因为我所有其他视图都在使用自动布局

对此有什么帮助吗?

4

3 回答 3

0

您应该设置许多约束以使其以正确的方式工作。如果我理解正确,你想要类似的东西:

View
----------------------------------
| ScrollView                     |
|--------------------------------|
||                              ||
||                              ||
||                              ||
|--------------------------------|
|ImageView                       |
|--------------------------------|
||                              ||
|--------------------------------|
----------------------------------

在这种情况下,您应该将约束设置为 Scrollview 的顶部,正好是 View 的顶部。ImageView 的顶部是 ScrollView 的底部,ImageView 的底部是 View 的底部。和 ScrollView 里面的东西类似。如果您将拥有每个所需的约束,它将起作用。

于 2013-11-12T08:22:26.863 回答
0

UIScrollView 的 contentSize 可以通过 UIScrollView 中的 NSLayoutConstraints 隐式设置。

这样做的方式(如果您希望图像视图紧贴在 UIScrollView 中)是:

UIImageView *imageView = ...
UIScrollView *scrollView = ...
NSDictionary *viewsDictionary = @{@"imageView" : imageView};
[scrollView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[imageView]|"
                                                                   options:kNilOptions
                                                                   metrics:nil
                                                                     views:viewsDictionary]];
[scrollView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[imageView]|"
                                                                   options:kNilOptions
                                                                   metrics:nil
                                                                     views:viewsDictionary]];

contentSize 将等于 UIImageView 的大小。

显然,放置 UIScrollView 与在其子视图中放置任何其他视图相同。

于 2013-11-12T08:37:44.490 回答
0

我通过在 scrollView 中创建这样的约束来使用边界视图,例如:

H:|[borderView(400)]|
V:|[borderView(600)]|

也许你可以使用你的 UIImageView 作为边界视图。

于 2013-11-12T08:28:45.317 回答