使用自动布局的UIScrollView只会反弹



我真的很难让UIScrollView正确使用Autolayout。它没有像应该的那样向下滚动,而是反弹,所以如果我一放开它就拖动它看更多,它就会回到原来的位置。

我已按以下方式设置场景:
-主视图
 -滚动视图
 nbsp;-内容视图
 nbsp -标签
 nbsp -标签

视图控制器的大小度量设置为"自由形式"。主视图、滚动视图和内容视图的高度都设置为700,所以我可以正确地看到布局。

在我的.h文件中,我有一个连接到UIScrollView的出口,在我的viewDidLoad方法中,我正在执行以下操作:

Scroller.translatesAutoresizingMaskIntoConstraints = YES;
[self.Scroller setContentSize:CGSizeMake(320, 1000)];

我试过在各种事情上设置各种各样的约束。通常,当我添加一个新的Xcode时,会抱怨约束不正确,并提示我更新它们。我尝试了很多不同的变体,我记不清了,但这里有一些:

  1. 固定滚动视图的高度
  2. 将内容视图的底部固定到滚动视图-使用UIScrollView进行自动布局
  3. 固定内容视图的高度

我尝试过的其他东西:

  1. 阅读&以下是苹果的Technote:https://developer.apple.com/library/ios/technotes/tn2154/_index.html
  2. 设置ScrollView的内容插入-关于UIScrollView和自动布局的困惑
  3. 设置内容大小:UIWebView';s UIScrollView子视图可以滚动,但可以反弹到框架,而不会出现垂直滚动指示器

我相信这一定是相对直接的,但我一直在撕头发。在Stackoverflow和Google上有很多类似的问题,但似乎没有一个完全符合我的要求。

如有任何帮助或资源,我们将不胜感激。

JA

一个可能的原因是滚动视图的contentSize在viewDidLoad之后发生的布局事件之后重置(例如,由于不正确的约束设置)。

我不得不把代码放在viewDidPear中,让它正常工作

    CGSize size = CGSizeMake(320, 931);
    self.scroller.scrollEnabled = YES;
    self.scroller.contentSize = size;

最新更新