最终,我尝试检索动态 UIScrollView 的 contentSize。
我正在用这个循环来做到这一点:
var contentRect = CGRectZero
for view: UIView in self.scrollView.subviews {
var size : CGSize = (view.text?.sizeWithAttributes([NSFontAttributeName: UIFont.systemFontOfSize(14.0)]))
contentRect = CGRectUnion( contentRect, CGRectMake(size) )
}
scrollView.contentSize = contentRect
但是循环体在语法上是不正确的。这是因为您无法使用变量 size
创建 CGRectMake
。
有人知道我如何正确创建这个形状吗?有没有更好的方法来重构这段代码,使其更加优雅?
最佳答案
您需要添加 x 和 y 坐标才能使其工作。应该是这样的:
var contentRect = CGRectZero
for view: UIView in self.scrollView.subviews {
var size : CGSize = (view.text?.sizeWithAttributes([NSFontAttributeName: UIFont.systemFontOfSize(14.0)]))
let rect = CGRectMake(0, 0, size.width, size.height)
contentRect = CGRectUnion( contentRect, rect )
}
scrollView.contentSize = contentRect
关于swift - 如何根据尺寸创建矩形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35943770/