【问题标题】:Programmatic Autolayout changes behaviour of a UIView程序化自动布局更改 UIView 的行为
【发布时间】:2016-02-11 09:28:49
【问题描述】:

我有一个控制器,我在其中以编程方式添加子视图。通过子视图的配置,我以编程方式添加自动布局约束。一切正常,只是如果我添加约束,视图不会对触摸做出反应,甚至设置的背景颜色也不会显示。

buttonView 应该显示在我的父视图的右下角。

有什么想法可能是错的吗?

这是我添加约束的方法:

 private func configureAutolayoutConstraints(buttonView: UIView, parentView: UIView){

        buttonView.translatesAutoresizingMaskIntoConstraints = false

        let bottomConstraint = NSLayoutConstraint(item: buttonView, attribute:
            .Bottom, relatedBy: .Equal, toItem: parentView, attribute: .Bottom, multiplier: 1.0, constant: -130)

        parentView.addConstraint(bottomConstraint)


        let trailingConstraint = NSLayoutConstraint(item: buttonView, attribute:
            .Trailing, relatedBy: .Equal, toItem: parentView, attribute: .Trailing, multiplier: 1.0, constant: -90)
        parentView.addConstraint(trailingConstraint)

    }

【问题讨论】:

  • 您需要提供至少 4 个约束才能使其工作。你只给出了底部和尾随。您还需要宽度+高度或前导+顶部约束。
  • 没错!请把它写成一个分析器

标签: ios uiview autolayout


【解决方案1】:

自动布局引擎需要至少 4 个约束来确定视图框架。您只应用了底部和尾随约束。您需要 width+height leading+top 约束才能使其工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-04
    • 2014-01-27
    • 2015-01-21
    • 1970-01-01
    • 1970-01-01
    • 2015-02-26
    • 1970-01-01
    相关资源
    最近更新 更多