如果没有内容,如何从stackview中删除UIButton

时间:2017-10-30 13:33:17

标签: ios swift nslayoutconstraint uistackview

我在collectionViewCell

中的stackView中有四个按钮

enter image description here

如果按下按钮,我正在执行segue到newVC,我在newVC中显示的内容是通过JSON来的。如果url为空或相应按钮的url.characters.count == 0,我想将其从单元格中删除,并在单元格中同等地调整其余按钮的大小。我怎样才能做到这一点。

2 个答案:

答案 0 :(得分:1)

使用UIStackView非常简单。只需将按钮标记为隐藏,UIStackView将自行调整大小。

func buttonTapped(_ button: UIButton) {
    button.isHidden = shouldHideButton()

    performSegue(withIdentifier: "YourSegueIdentifier", sender: self)
}

func shouldHideButton() {
    ...
}

同样提及venkat,您可以使用removeArrangedSubview(_:)而不是隐藏,这将永久删除该按钮。

我建议您阅读UIStackView documentation

答案 1 :(得分:1)

由于您正在StackView工作,因此当我们隐藏您的UIButton时,其中的其他项目会自动调整。

为了根据您的网址字符数隐藏UIButton,我们可以执行以下操作:

button.isHidden = url.characters.count == 0

为了进一步简化,我们可以像这样检查.isEmpty

button.isHidden = url.isEmpty