【问题标题】:Resize uiscrollview after adding content programmatically以编程方式添加内容后调整 uiscrollview 的大小
【发布时间】:2018-10-12 16:57:35
【问题描述】:

我在 UIscrollview 中有一个带有 uielements 的 Contentview。下面是我的故事板的屏幕截图:

我想为应用程序添加选项,如果用户单击按钮,它将在内容视图的底部添加标签(在红色下划线标签下方 - dzialTerminOutlet)。

我正在使用以下代码以编程方式添加新标签:

let label = UILabel()
label.translatesAutoresizingMaskIntoConstraints = false

label.backgroundColor = UIColor.orange
label.textColor = UIColor.black
label.textAlignment = NSTextAlignment.center
label.text = "test label"
contentView.addSubview(label)


label.topAnchor.constraint(equalTo: dzialTerminOutlet.bottomAnchor, constant: 10).isActive = true
label.bottomAnchor.constraint(equalTo: contentView.bottomAnchor, constant: 85.0)
label.widthAnchor.constraint(equalToConstant: 200.0)
label.heightAnchor.constraint(equalToConstant: 10.0)

虽然滚动视图不会调整大小。这里有什么问题?

【问题讨论】:

    标签: ios uiscrollview


    【解决方案1】:

    1- 你需要激活

    NSLayoutConstraint.activate([
      label.topAnchor.constraint(equalTo: dzialTerminOutlet.bottomAnchor, constant: 10),
      label.bottomAnchor.constraint(equalTo: contentView.bottomAnchor, constant: 85.0),
      label.widthAnchor.constraint(equalToConstant: 200.0),
      label.heightAnchor.constraint(equalToConstant: 10.0)
    ])
    

    2- 您需要删除 IB 中在 dzialTerminOutletcontentView 之间建立的底部约束,以便能够插入新的约束并相应地调整 scrollView 的大小以避免它与

    label.bottomAnchor.constraint(equalTo: contentView.bottomAnchor, constant: 85.0)
    

    所以将它作为一个插座并停用它或在 contentView 中搜索底部约束并将其删除

    【讨论】:

    • 您的回答对我来说似乎很合乎逻辑。然而,在我禁用底部约束(dzialTerminBottomConstraint.isActive = false)后,滚动视图变短了 85 px。
    • 设为 -85(负)
    【解决方案2】:

    您是否将scrollView contentSize 设置为新尺寸? scrollView.contentSize = CGSize(宽度: self.contentView.frame.size.width, 高度: self.contentView.frame.size.height)

    【讨论】:

      【解决方案3】:

      我经常使用它的一个非常简单的方法是将你的 contentView 高度约束与一个 IBOutlet 对象连接起来并更新它的值。

      @IBOutlet weak var contentViewHeight : NSLayoutConstraint!
      

      添加标签后:

      contentViewHeight.constant += labelHeight
      

      不要忘记使用滚动视图设置 contentView 约束(顶部、底部、前导、尾随)= 0

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-29
        • 2012-02-06
        • 2011-07-08
        • 1970-01-01
        相关资源
        最近更新 更多