使用Autolayout的UIScrollView内容大小

时间:2015-01-19 11:47:00

标签: ios uiview uiscrollview autolayout

我正在使用UIScrollView自动布局来更改contentS enter code here ize值,如下所示:

  • UIView
  • ScrollView
  • UIViewcontentView

在运行时我正在添加UITextView&有约束的UIImageViewconentView(上,下,左,右)

contentView尺寸未更改UIScrollView contentSize也是。

那可能是什么问题?

2 个答案:

答案 0 :(得分:0)

  

在运行时我正在添加UITextView&具有约束的UIImageView到conentView(顶部,底部,左侧,右侧)

也许你应该添加约束(上,左,高,宽)或(上,左,右,高)

如果您坚持(顶部,底部,左侧,右侧),ScrollView将保留旧的内容大小,并使您的UITextView& UIImageView(高度= 0,宽度= 0)。

答案 1 :(得分:0)

这是更新滚动视图内容大小的简洁方法。它是Swift,所以如果你在Objective C中工作,你需要一个桥接头。

extension UIScrollView {
    func updateContentViewSize() {
        var newHeight: CGFloat = 0
        for view in subviews {
            let ref = view.frame.origin.y + view.frame.height
            if ref > newHeight {
                newHeight = ref
            }
        }
        let oldSize = contentSize
        let newSize = CGSize(width: oldSize.width, height: newHeight + 20)
        contentSize = newSize
    }
}

只要在滚动视图中添加子视图,就可以在滚动视图的对象上调用它。