iOS 8 - UIScrollView 不滚动

标签 ios xcode uiscrollview autolayout scrollview

我想让垂直滚动取决于内容 View 中的内容。我创建了以下层次结构: View -> ScrollView -> 内容 View

  • 我将(上、下、左、右) ScrollView 固定到主视图
  • 我还将内容 View 固定到 ScrollView
  • 然后,我在内容 View 主视图之间添加了相同宽度相同高度约束,以便< strong> ScrollView 可以计算其内容大小

完成所有这些操作后, ScrollView 根本不滚动(它只是缩小内容)。仅当我将 scrollView.contentSize.height 添加到 viewWillLayoutSubviews() 时,它才会滚动。但是我不想硬编码这个高度值。我认为自动布局应该自动计算内容高度并添加适当的滚动。有谁知道解决这个问题的正确方法吗?

最佳答案

我也遇到了同样的问题。我通过删除 ScrollView 的约束然后将 ScrollView 的框架设置为等于 viewDidAppear 中的 View 框架来修复它:

self.scrollView.frame = self.view.frame;

当您将 Storyboard中 ScrollView 的宽度和高度设置为等于 View 以便您可以看到完整内容时,就会出现此问题。它非常适合编辑,但是当您运行应用程序时, View 的框架大小会根据 iPhone 或 iPad 的不同而有所不同,但 ScrollView 的框架大小不会改变。它仍然与您在 Storyboard中设置的大小相同。

这就是为什么 ScrollView 仅在您将内容大小硬编码为随机大值时才起作用。该值必须大于当前 ScrollView 的帧大小才能正常工作。一旦您将 ScrollView 的框架设置为等于 View 的框架,内容大小设置将正常工作:

self.scrollView.contentSize = self.contentView.frame.size;

关于iOS 8 - UIScrollView 不滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31758589/

相关文章:

ios - 如何在 CoreData 的 NSLog 中显示详细信息?建议我一个解决方案

ios - 如何使用 SubView 的 SuperView 初始化 UIView

objective-c - AVPlayerLayer 获取图像到 UIImageView 缓冲区

ios - 我可以将 CGContextRef 传递给从 drawRect 调用的方法吗?

ios - 表格 View 不会推送到下一个 View

ios - 用户界面测试 : Click on UIcollectionview then testing it get failed

iOS PDFKit 禁用垂直滚动反弹

iOS 设计实现建议

iphone - 在 ios Facebook SDK 3.0 中登录时应用程序崩溃

ios - 获取BLE IOS外围设备的UUID,而不获取服务UUID