繁体   English   中英

使用UIScrollView中的动态内容调整UiView高度的大小(快速)

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM