我在IB中有我的UIView。然后我有一个带UIScrollView为子视图的子UIView。然后UIScrollView有一个子UIImageView。UIScrollView和UIImageView的尺寸相同。它们比它们所属的父UIView要大得多。我以为这会使滚动工作。但是它并没有。是否需要某种代码才能使滚动视图工作?
我在IB中有我的UIView。然后我有一个带UIScrollView为子视图的子UIView。然后UIScrollView有一个子UIImageView。UIScrollView和UIImageView的尺寸相同。它们比它们所属的父UIView要大得多。我以为这会使滚动工作。但是它并没有。是否需要某种代码才能使滚动视图工作?
您需要设置UIScrollView.contentSize
以匹配可滚动的总大小,这在此情况下是您的子视图框架大小。
如已经在接受的答案中提到的,您必须设置UIScrollView
的contentSize
属性。
这可以通过界面生成器来完成。
构建并运行,您的滚动视图将会滚动。
内容插入不影响滚动。请参阅UIScrollView contentInset属性是用来做什么的?
要滚动,您需要使滚动视图的框架小于其内容,即包含的图像或视图。
这可能对大多数人来说很明显,但我花了很长时间才想明白为什么我的UIScrollView无法滚动,所以我在这里发布我遇到的问题,以帮助其他人:
UIScrollView必须具有您希望其呈现的可见区域的尺寸,而不是其内容的大小。
我知道这很荒谬,但如果能帮助到某个人的话,那就好了。
UIScrollView
应该是你想要在屏幕上显示的大小,而该滚动视图的 contentSize
属性应该设置为将要滚动的区域(内容)的大小。如果其 contentSize
小于或等于其框架大小,则滚动视图不会滚动。 - Olie我通过以下答案解决了滚动问题:
https://dev59.com/mF8e5IYBdhLWcg3wNIJp#39945124
对我而言,诀窍是:
- 现在您需要设置内容UIView的高度。 您可以指定内容视图的高度(不好)或通过确保底部控件约束到内容视图的底部来使用其中包含的控件的高度。
我已经设置了scrollView内部视图的高度和宽度,并且使用了垂直和水平居中对齐,这就是为什么没有起作用的原因!
删除这些约束后,我需要添加相等的宽度(scrollView和scrollView内部视图),并且直接使用内容设置scrollView内部视图的高度。 这意味着:视图中的最后一个元素必须具有与视图的底部相关的约束!!
我把我的scrollview中的所有内容都放在IB(即Interface Builder)中。包括按钮、标签、文本框等。整个视图的高度为500。
然后在IB中,我将其调整为436的高度。
接着,在代码中,我在viewDidLoad方法中添加了以下代码:
optionsScrollView.contentSize = CGSizeMake(320,500);
那么我可以滚动的像素就剩下64个。它完美地工作。
我还在.h文件的@interface括号中放置了"UIScrollViewDelegate",并将滚动视图的代理输出口连接到IB中的文件所有者。
更多,你启用了滚动吗? 查看属性
@property(nonatomic, getter=isScrollEnabled) BOOL scrollEnabled
请确保以下三点:
检查scrollView的frame和contentView的frame,你可能会找到答案
scrollView.isScrollEnabled = true
scrollView的contentView的高度未与scrollView的高度进行约束
UIScrollView无法滚动!
两种方法:
- (void)viewDidLoad {
[super viewDidLoad];
。。。
//[(UIScrollView *)self.view setContentSize:CGSizeMake(375, 1000)];
CGSize curScreenSize = UIScreen.mainScreen.bounds.size;
CGFloat scrollWidth = curScreenSize.width;
CGFloat scrollHeight = curScreenSize.height * 2;
[(UIScrollView *)self.view setContentSize:CGSizeMake(scrollWidth, scrollHeight)];
故事板 -> 身份验证检查器 -> 用户定义的运行时属性 -> 添加新属性:
UIScrollView
不能根据其子视图自行解决这个问题? - aroth