我的 ScrollView 没有垂直滚动
Posted
技术标签:
【中文标题】我的 ScrollView 没有垂直滚动【英文标题】:My ScrollView is not scrolling vertically 【发布时间】:2018-02-06 10:32:19 【问题描述】:我正在使用 Swift 4 在 Xcode 9 中编写一个应用程序,并且我已经将一个 UIScrollview 添加到一个视图中,该视图旨在显示一个高度为 3030 像素的 jPeg。我已将滚动视图添加到我的视图中,并在 IB 的 Outlets 中分配了代表。我已将名为 scrollView 的 IBOutlet 附加到 UIScrollview,并将带有 jPeg 的 UIImageView 添加到 UIScrollview。我将 UIScrollView 的大小设置为 375W 和 620H,然后将 UIImageView 设置为 375W 和 3030H。这应该会完成 Interface builder 中的工作。
在控制器中,我将 UIScrollViewDelegate 添加到了类中,并将下面的代码添加到了 ViewDidLoad
//scrollView.delegate = self
scrollView.contentSize = CGSize(width: 375, height: 3040)
我已经注释掉了代理行,就像我在 IB 中所做的那样。当我运行该应用程序时,屏幕上会出现图像,但是当我尝试滚动时,它几乎不会滚动超过一个屏幕。我错过了什么?
【问题讨论】:
您是否使用自动布局添加了滚动视图? 你能把项目放在 GitHub 中并提供 url 是的,我确实使用自动布局在 IB 中添加了它 抱歉 Nischal,我无法添加该项目,因为它非常大并且受非免责声明文档的约束 只是带有演示项目的滚动视图部分,如果你添加它我可以帮助你 【参考方案1】:您需要在滚动视图中添加 UIView,然后将该视图顶部/底部/前导/尾随 0 添加到滚动视图,然后在视图中添加图像视图并将图像视图底部约束添加到该视图, 这样你的滚动视图就可以正常工作了。
详情请参考下图。
【讨论】:
嘿@User 你觉得我的回答有帮助吗?【参考方案2】:您必须将滚动视图放置在 UIView 中,并将另一个 UIView 放置在滚动视图中。
-
外部视图约束:前导、尾随、顶部和底部 - 0
滚动视图约束:前导、尾随、顶部和底部 - 0
内视图约束:前导、尾随和顶部到 Superview,宽度与外视图相等,底部空间为 -250,高度等于 900(内容的高度)
立即设置您的内容大小。
【讨论】:
【参考方案3】:您可以实现如下图截图
//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
【讨论】:
以上是关于我的 ScrollView 没有垂直滚动的主要内容,如果未能解决你的问题,请参考以下文章
ScrollView中的Horizontal RecyclerView:垂直滚动时如何获得焦点?