![](/img/trans.png)
[英]UIScrollView with sticky footer UIView and dynamic height content
[英]Resizing UiView Height With Dynamic Content in UIScrollView (Swift)
我在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
。 需要!
调整滚动大小时,滚动视图具有一个名为scroll.scrollRectToVisible(<rect: CGRect>, animated: <Bool>)
来滚动到框架。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.