我正在开发应用程序,并决定使用UIScrollView。我使用制图学来设置UIScrollView中的元素约束。
我的问题是:在地图学上,我们可以用element.bottom获得元素的底部位置,有没有办法用这个位置来设置UIScrollView contentSize的高度?我知道最后一个元素是什么。
发布于 2016-11-27 16:55:31
根据吉特布地图项目上的这个回答,这是不可下毒的。
不确定您的意思,但是view.bottom不是一个值,而是一个变量符号(毕竟,自动布局的任务是计算这个值)。
现在最让我印象深刻的是,如果我手动设置约束,而不使用制图,这是正确的。
self.view.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "V:|[v0(\(getScreenSize().width * 0.68))]-25-[v1][v2(\(textViewHeight))][v3(44)]-20-[v4(32)][v5(300)]|", options: NSLayoutFormatOptions(), metrics: nil, views: ["v0": imageView, "v1": titleTextView, "v2": textView, "v3": stackView, "v4": galleryHeader, "v5": collectionView]))发布于 2016-11-27 14:22:26
当您使用AutoLayout时,scrollView的contentSize将自己计算。Ie:它将有一个与其包含的元素的总高度相对应的高度。您应该将底部元素的底部绑定到scrollView的底部。
| - [view1 (100)] - [view2 (150)] - [view3 (100)] - |假设您有这样的情况,每一个--表示水平间距约束为0,以及scrollView的边框\\,因此,将计算scrollView的contentSize与其包含的元素的总宽度相匹配,其值为350。
您可以检查Apple中关于如何使用scrollViews和AutoLayout:index.html的这一部分
请记住,在使用contentSize时,不应该手动设置scrollView的AutoLayout。
https://stackoverflow.com/questions/40829797
复制相似问题