ScrollView不滚动到视图的末尾

时间:2015-11-12 08:12:09

标签: ios uiscrollview swift2

在我的ViewController中,我使用StoryBoard在ScrollView中添加了一个ScrollView和一个视图(在ScrollView和View上设置了约束)。现在在我的代码中我使用View来动态添加其他视图。正在添加视图,但我的问题与滚动有关。我能够滚动,但它没有滚动到最后一个视图...我尝试执行以下操作

override func viewDidLayoutSubviews() {
    ScrollView.contentSize.height = contentView.frame.height
}

但这不起作用,我也注意到内容视图(我正在添加视图的高度)高度是在viewDidLayoutSubviews()中打印736,即使我添加更多视图当然应该增加其大小。

请任何帮助将不胜感激。

我正在将视图添加到内容视图中,如下所示:

let Description = UILabel(frame: CGRectMake(20, CGFloat(position), self.view.frame.size.width-40, 40))
Description.addConstraint(NSLayoutConstraint(item: view, attribute: .Height, relatedBy: .Equal, toItem: nil, attribute: .NotAnAttribute, multiplier: 1, constant: 40))
Description.addConstraint(NSLayoutConstraint(item: view, attribute: .Width, relatedBy: .Equal, toItem: nil, attribute: .NotAnAttribute, multiplier: 1, constant: self.view.frame.size.width-40))
contentView.addSubview(Description)
// i don't know if i should add constraints but i added anyway

1 个答案:

答案 0 :(得分:5)

有效!

像这样编辑viewDidLayoutSubviews:

 override func viewDidLayoutSubviews() {

        self.view.setupContentViewForViewWithScroll(contentView: contentView)

        let lastView : UIView! = contentView.subviews.last
        let height = lastView.frame.size.height
        let pos = lastView.frame.origin.y
        let sizeOfContent = height + pos + 10

        ScrollView.contentSize.height = sizeOfContent

    }