【问题标题】:UIScrollView Content Size with Autolayout带有自动布局的 UIScrollView 内容大小
【发布时间】:2015-01-19 11:47:00
【问题描述】:

我正在使用带有自动布局的UIScrollView 来更改 contentSenter code hereize 值,如下所示:

  • UIView
  • ScrollView
  • UIView (contentView)

在运行时,我将 UITextViewUIImageView 添加到 conentView 并带有约束(上、下、左、右)

contentView 的大小没有改变UIScrollView contentSize 也是。

那么可能是什么问题?

【问题讨论】:

    标签: ios uiview uiscrollview autolayout


    【解决方案1】:

    在运行时,我将 UITextView 和 UIImageView 添加到带有约束(上、下、左、右)的内容视图

    也许您应该添加约束 (Top, Left, Height, Width), 或 (Top, Left, Right, Height)

    如果你坚持(Top,Bottom,Left,Right),ScrollView会保持旧的内容大小,并使你的UITextView & UIImageView (Height = 0, Width = 0)。

    【讨论】:

      【解决方案2】:

      这是一种更新滚动视图内容大小的巧妙方法。它是 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
          }
      }
      

      只要将子视图添加到滚动视图,只需在滚动视图的对象上调用它即可。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-04-08
        • 1970-01-01
        • 1970-01-01
        • 2013-06-24
        • 2012-09-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多