UIView没有隐藏,但里面的按钮是什么?

时间:2014-12-30 16:37:33

标签: ios swift uiview uibutton hidden

我有一个UIButton,其文字设置为"Play"

@IBOutlet weak var boatTypeGamePlayButton: UIButton!

点击此按钮并将其文本设置为"play"时,我想执行一些功能:

@IBAction func boatTypeMatchingGameButtonTapped(sender: AnyObject) {
    if boatTypeGamePlayButton.titleLabel?.text == "Play" {
        boatTypeMatchingGameLabel.hidden = true
        boatTypeGameLevelContainer.hidden = false
        boatTypeMatchingGameTitle.text = "Select Level"
        boatTypeGamePlayButton.setTitle("Cancel", forState: UIControlState.Normal)
    }

boatTypeGameLevelContainer是一个UIView我有四个按钮。

问题是boatTypeGameLevelContainer确实变得可见,它应该是可见的,但它内部的按钮却没有。我尝试为按钮设置IBOutlet s并将它们设置为在此功能中可见,但它没有改变任何内容。

我设置的所有其他方法都在工作......

我还有一个else声明(意思是boatTypeGamePlayButton的文字设置为"Cancel"):

else {
    boatTypeMatchingGameLabel.hidden = false
    boatTypeGameLevelContainer.hidden = true
    boatTypeMatchingGameTitle.text = "Boat Type Matching Game"
    boatTypeGamePlayButton.titleLabel?.text = "Play"
    boatTypeGamePlayButton.setTitle("Play", forState: UIControlState.Normal)
}

如何确保按钮出现?我感谢任何支持。

更新:我使用故事板添加按钮,我不会在代码中更改它们的任何属性。

1 个答案:

答案 0 :(得分:0)

您为两个语句添加了相同的标题,导致混淆。如果两个实例的文本都是Play,则会产生一些问题,并取消。我建议隔离这些条款。

@IBAction func boatTypeMatchingGameButtonTapped(sender: AnyObject) {
if boatTypeGamePlayButton.titleLabel?.text == "Play" {
//some code here
}
else if boatTypeGamePlayButton.titleLabel?.text == "Cancel"{
//do your other code here
} else {
//do something if none of those statements are true
}

修改

如果您声明视图正在填充并且您的背景显示您在故事板中设置的颜色,则可能是由于缺少自动布局限制。通常,当您为特定大小创建故事板或xib并且运行的大小不同时,您为视图及其组件指定了没有约束,它们将无法编译和运行,就像您看到的那样在故事板中。

您应该查看Apple提供的Auto Layout Guide。它为您未来的项目提供了广泛而丰富的资源。如果您正确学习,自动布局非常直观。祝你好运