滚动视图在iOS 8 Xcode中无法滚动 - Swift

3

我对Swift和ios开发非常陌生,但我找不到一种方法让UIScrollView向下滚动并停留在底部。我已经尝试了很多教程,但仍然没有解决。我的ScrollView元素中有一个ContentView元素。这个ContentView包含了我想要通过滚动查看的所有框,但它无法滚动。不过如果弹跳的话也可以...有人能指点我正确的方向吗?


1
请将您正在尝试的代码放在这里。 - Victor Sigler
7个回答

8
viewDidLayoutSubviews中设置contentSize
override func viewDidLayoutSubviews() {
   super.viewDidLayoutSubviews()
   scrollView.contentSize = CGSize(width: 375, height: 1500)
}

尝试过这个方法但没有结果。我在另一个教程中看到过这种方法,但不知道为什么它不起作用。我已经将scrollView的宽度设置为375,高度为1500,然后在其中放置了一个相同尺寸的contentView,所有文本元素都存储在其中。 - FreeTheStudents
你是否正在使用自动布局?如果没有,我建议你使用它。 - iAnurag

7

经过两天的努力,我终于弄清楚了,而且非常简单。我所做的只是将scrollView设置为屏幕大小,然后将content view高度设置为1500px,它就开始工作了。谢谢大家!


4
听起来您可能没有为滚动视图设置contentSize。如果您没有使用自动布局,请按照以下步骤操作:
scrollView.contentSize = // The size of your content.

如果您正在使用自动布局,则需要确保您有从内容的每个边缘到UIScrollView的相应边缘的NSLayoutConstraints。通过这样做,UIScrollView的内容大小将自动设置。
希望能对您有所帮助。

我在viewDidLoad()函数中添加了以下代码:ScrollView.contentSize = CGSize(width: 375, height: 1500),但没有任何反应。 - FreeTheStudents
哼,你觉得你能发布相关的代码,这样我就能更好地了解正在发生的事情吗? - ABakerSmith
`class ViewController: UIViewController {@IBOutlet var ScrollView: UIScrollView! @IBOutlet var ContentView: UIView! @IBOutlet var Status: UIView! @IBOutlet var Camera: UIView! @IBOutlet var TextBox: UIView! @IBOutlet var Post_Text: UIView! @IBOutlet var Post_Media: UIView! @IBOutlet var Like_Button: UIButton! override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. ScrollView.contentSize = CGSize(width: 375, height: 1500) }` - FreeTheStudents

0

SWIFT 4.0更新

@IBOutlet weak var myScrollView: UIScrollView!

  override func viewDidLoad() {
    super.viewDidLoad()

    myScrollView.alwaysBounceVertical = true
    myScrollView.alwaysBounceHorizontal = true
    myScrollView.isScrollEnabled = true
    myScrollView.contentSize = CGSize(width: 375, height: 1000)
}

0

只是想在FreeTheStudentsAnswer中添加一条注释,以防有人遇到与我类似的问题 - 我将scrollView设置为屏幕大小,然后将内容视图高度设置为较大的值,它开始工作了,只有当我在viewDidAppear中设置这些而不是在viewDidLoad中设置时。不确定这是否会对任何人有所帮助,但这解决了我的问题。


0

在滚动视图中,只有当滚动视图有足够的空间来滚动其内容时,才会发生滚动。

你说滚动视图和其内容视图具有相同的尺寸。 那么它就不会滚动。 如果您希望它滚动,scrollview.contentSize应该至少是scrollview大小的两倍。

提示:scrollview的尺寸不应大于iPhone屏幕尺寸。而scrollview内容的大小应该大于scrollview本身。 滚动视图通过其内容视图进行滚动。


-1

试一下

1.scrollView.bounds = YES;
2.scrollView.contentSize = CGSize(width: self.view.frame.size.width, height: YourContentView.frame.size.height);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接