我的 ScrollView 没有垂直滚动

My ScrollView is not scrolling vertically

我正在 Xcode 9 和 Swift 4 中编写一个应用程序,我已经将 UIScrollview 添加到一个视图中,该视图旨在显示一个高度为 3030 像素的 jPeg。我已将滚动视图添加到我的视图中,并在 IB 的 Outlets 中分配了委托。我已将名为 scrollView 的 IBOutlet 附加到 UIScrollview,并将带有 jPeg 的 UIImageView 添加到 UIScrollview。我已将 UIScrollView 的大小设置为 375W 和 620H,然后将 UIImageView 设置为 375W 和 3030H。这应该完成界面生成器中的工作。

在控制器中,我将 UIScrollViewDelegate 添加到 Class 并将下面的代码添加到 ViewDidLoad

    //scrollView.delegate = self
    scrollView.contentSize = CGSize(width: 375, height: 3040)

我已经在 IB 中注释掉了委托行。当我 运行 该应用程序时,屏幕上出现了图像,但是当我尝试滚动时,它几乎只滚动了一个屏幕。我错过了什么?

您需要在滚动视图中添加一个 UIView,然后将该视图 top/bottom/leading/trailing 0 添加到滚动视图,然后在视图中添加图像视图并添加图像视图底部约束到那个视图,所以你的滚动视图将正常工作。

详情请参考下图。

您必须将滚动视图放在一个 UIView 中,并将另一个 UIView 放在滚动视图中。

  1. 外部视图约束:前导、尾随、顶部和底部 - 0
  2. 滚动视图约束:前导、尾随、顶部和底部 - 0
  3. 内部视图约束:前导、尾随和顶部到 Superview,宽度与外部视图相等,底部 space 到 -250,高度等于 900(内容的高度)
  4. 立即设置您的内容大小。

您可以实现如下图截图

    //Height Constant of image
    @IBOutlet weak var ConstHeight: NSLayoutConstraint!

    override func viewDidLoad() {
        super.viewDidLoad()


        if #available(iOS 11.0, *) {
            self.scrollView.contentInsetAdjustmentBehavior = .never
        }else{
            self.automaticallyAdjustsScrollViewInsets = false

        }

        //You can change height on here too
         self.ConstHeight.constant = 800

    }