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
成为deuicrollview
的唯一子视图,但这也不起作用。关闭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]];