Ios 使用autolayout设置UIScrollview的内容大小

Ios 使用autolayout设置UIScrollview的内容大小,ios,iphone,objective-c,uiscrollview,autolayout,Ios,Iphone,Objective C,Uiscrollview,Autolayout,我有一个非常简单的观点。它只是一个带有UISCrollView和UIImageView的视图。在UIScrollView中,我有一个非常大的UIImageView。现在我需要使用autolayout设置UIScrollview的contentsize 但我想不出我该怎么做?下面是我的故事板的样子 我试图将UIImageView放在UIView中,并使该UIView成为deuicrollview的唯一子视图,但这也不起作用。关闭AUTLOAOUT不是一个选项,因为我的所有其他视图都在使用自动布局

我有一个非常简单的观点。它只是一个带有
UISCrollView
UIImageView
的视图。在
UIScrollView
中,我有一个非常大的
UIImageView
。现在我需要使用
autolayout
设置
UIScrollview
contentsize

但我想不出我该怎么做?下面是我的故事板的样子

我试图将
UIImageView
放在
UIView
中,并使该
UIView
成为de
uicrollview
的唯一子视图,但这也不起作用。关闭AUTLOAOUT不是一个选项,因为我的所有其他视图都在使用自动布局


这方面有什么帮助吗?

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

View
----------------------------------
| ScrollView                     |
|--------------------------------|
||                              ||
||                              ||
||                              ||
|--------------------------------|
|ImageView                       |
|--------------------------------|
||                              ||
|--------------------------------|
----------------------------------
在这种情况下,您应该将约束设置为Scrollview的顶部,即视图的顶部。 ImageView的顶部是ScrollView的底部,ImageView的底部是视图的底部。 而在ScrollView内部,情况也类似。
如果您有每个所需的约束,它将起作用。

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

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

可能您可以使用您的UIImageView作为边界视图。

可以通过UIScrollView中的NSLayoutConstraints隐式设置UIScrollView的内容大小

这样做的方式(如果您希望图像视图与UIScrollView紧密匹配)是:

contentSize将等于UIImageView的大小

显然,要放置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]];