将UIScrollView中的内容视图固定到其底部而不是其顶部边缘

时间:2018-05-21 18:21:19

标签: ios uiscrollview

默认情况下,UIScrollView将其内容视图固定在其上边缘,即当您向具有垂直滚动轴的滚动视图添加一些内容并且内容的总高度小于整个滚动视图的高度时,内容显示在滚动视图的顶部。

有没有办法改变这种行为并让滚动视图将其内容视图固定到底部?

(换句话说:我希望内容“从底层发展”。)

Example layouts

2 个答案:

答案 0 :(得分:0)

可以在某个位置添加视图到滚动视图

这是一个简单的示例代码:

class ViewController: UIViewController {

    var scrollView: UIScrollView!
    var views: UIView!

    override func viewDidLoad() {
        super.viewDidLoad()

        views = UIView.init()
        scrollView = UIScrollView.init()


        scrollView.addSubview(views)
        self.view.addSubview(scrollView)

        addViewToBottomScroll()
    }

    override func viewDidLayoutSubviews() {
        super.viewDidLayoutSubviews()
        views.frame = CGRect(x: 0, y: 0, width: self.view.frame.width, height: 1300)
        scrollView.frame = self.view.frame
        scrollView.contentSize = views.frame.size
    }

    func addViewToScrollView() {
        let label = UILabel(frame: CGRect(x: 0, y: 10, width: self.view.frame.width, height: 40))
        label.text = "ScrollView"
        label.textAlignment = .center

        views.addSubview(label)

        let bottomView = UIView(frame: CGRect(x: 15.0, y: 950.0, width: self.view.frame.width - 30, height: 300))
        bottomView.backgroundColor = .yellow

        views.addSubview(bottomView)
    }
}

enter image description here

希望回答你的问题

答案 1 :(得分:0)

通常的解决方法是翻转滚动视图,然后翻转内容视图。

例如

        scrollView.transform = CGAffineTransform(scaleX: 1, y: -1)
        contentView.transform = CGAffineTransform(scaleX: 1, y: -1)

我真的很想知道一个更清洁的解决方案。