我在UIScrollView内有UIView,并已从Interface Builder将它们连接起来:
@IBOutlet weak var articleScroll: UIScrollView!
@IBOutlet weak var articleSubview: UIView!
我将动态内容放入UIView,并且希望将其高度绘制为与内容一样大(以便它滚动)。我认为使用.last结合内容的高度来查找origin.y可以做到这一点:
var scroll = self.articleSubview
var lastItem = scroll.subviews.last as! UIView
var lastOriginY = lastItem.frame.origin.y
var lastHeight = lastItem.frame.size.height
var finalHeight = lastOriginY+lastHeight
scroll.frame = CGRectMake(0 , 0, lastItem.frame.size.width, finalHeight)
构建成功,但是没有滚动。我尝试添加:
articleScroll.userInteractionEnabled = true
但这并没有改变。我究竟做错了什么?
更新:
已经解决了。必须调整实际滚动视图的大小,而不是子视图的大小。不要使用scroll.frame,而是要使用UIScrollView上的“ contentSize”:
self.articleScroll.contentSize = CGSizeMake(lastItem.frame.size.width, finalHeight)
UIScrollView的可滚动性(是一个单词吗?)取决于其contentSize
与边界大小的关系。这个想法是使contentSize
内容成为拥抱。如果它大于滚动视图的边界大小,则用户可以滚动。
您的代码没有设置contentSize
任何地方。需要!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句