Swift 3 - 约束按钮宽度

时间:2017-01-21 17:48:58

标签: swift xcode ios-autolayout

我想在我的视图顶部创建一个简单的栏,并排两个按钮,每个按钮占50%。

我创建了这样的栏:

    let topTabView = UIView()
    topTabView.backgroundColor = UIColor.red
    topTabView.translatesAutoresizingMaskIntoConstraints = false
    view.addSubview(topTabView)

    topTabView.leftAnchor.constraint(equalTo: view.leftAnchor).isActive = true
    topTabView.topAnchor.constraint(equalTo: topLayoutGuide.bottomAnchor).isActive = true
    topTabView.heightAnchor.constraint(equalToConstant: 60).isActive = true
    topTabView.widthAnchor.constraint(equalTo: view.widthAnchor).isActive = true

这很有效。

然后我添加了两个按钮,我得到了所有约束,除了我不确定如何让宽度锚点工作,以便每个按钮占据视图的50%。

    let filterButton = UIButton()
    filterButton.backgroundColor = UIColor.red
    filterButton.setTitle("Filter", for: .normal)
    filterButton.translatesAutoresizingMaskIntoConstraints = false
    topTabView.addSubview(filterButton)

    filterButton.leftAnchor.constraint(equalTo: topTabView.leftAnchor).isActive = true
    filterButton.centerYAnchor.constraint(equalTo: topTabView.centerYAnchor).isActive = true
    filterButton.heightAnchor.constraint(equalTo: topTabView.heightAnchor).isActive = true

    // NOT SURE ABOUT THIS ONE
    filterButton.widthAnchor.constraint(equalToConstant: 200).isActive = true


    let mapButton = UIButton()
    mapButton.backgroundColor = UIColor.red
    mapButton.setTitle("Map", for: .normal)
    mapButton.translatesAutoresizingMaskIntoConstraints = false
    topTabView.addSubview(mapButton)

    mapButton.rightAnchor.constraint(equalTo: topTabView.rightAnchor).isActive = true
    mapButton.centerYAnchor.constraint(equalTo: topTabView.centerYAnchor).isActive = true
    mapButton.heightAnchor.constraint(equalTo: topTabView.heightAnchor).isActive = true

    // NOT SURE ABOUT THIS ONE
    mapButton.widthAnchor.constraint(equalToConstant: 200).isActive = true

我试过这样的事情,但它没有工作:

mapButton.widthAnchor.constraint(equalToConstant: toTabView.frame.width / 2.0).isActive = true

任何帮助都会很棒!

1 个答案:

答案 0 :(得分:2)

  

以便每个按钮占据视图的50%

这就是multiplier的用途。你没有使用它。使用它!

因此,您需要一个约束,其中按钮的宽度与超级视图的宽度相同,除了0.5的{​​{1}}值。

示例:

multiplier

结果:

enter image description here

相关问题