Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 访问UIButton的Y坐标?_Swift_Xcode_Uibutton - Fatal编程技术网

Swift 访问UIButton的Y坐标?

Swift 访问UIButton的Y坐标?,swift,xcode,uibutton,Swift,Xcode,Uibutton,我有一个游戏的标题屏幕,硬模式直到后来才解锁。在玩家得分达到50分之前,标题屏幕上的硬按钮会被UILabel“覆盖”(这是一个按钮,但会变灰)。在我的viewdidload中,我需要将标签的y坐标设置为UIButton(硬按钮)的y坐标,这样它只能在先决条件被清除时显示。我使用故事板中的y坐标手动设置,但这不适用于不同的屏幕大小。这是我的代码: override func viewDidAppear(_ animated: Bool) { // Grays out the Hard B

我有一个游戏的标题屏幕,硬模式直到后来才解锁。在玩家得分达到50分之前,标题屏幕上的硬按钮会被UILabel“覆盖”(这是一个按钮,但会变灰)。在我的viewdidload中,我需要将标签的y坐标设置为UIButton(硬按钮)的y坐标,这样它只能在先决条件被清除时显示。我使用故事板中的y坐标手动设置,但这不适用于不同的屏幕大小。这是我的代码:

override func viewDidAppear(_ animated: Bool) {

    // Grays out the Hard Button if high score is less than 50
    if highScore >= 50 {
        hardButtonCover.frame.origin.y = 100000
    }
    else{
        hardButtonCover.frame.origin.y = 5
    }
}
因此,我不需要“hardButtonCover.frame.origin.y=5”部分,而需要它以某种方式为“hardButtonCover.frame.origin.y=hardButton.frame.origin.y”,其中hardButton是一个UIButton,加载时hardButtonCover将完全覆盖UIButton


提前向大家表示感谢。

我认为您应该使用自动布局约束。然后,在某些情况下,让你想要更新的constraint退出。我认为这应该有效,并且是一种更好的实现方式。如果您想这样做,那么如果需要,我可以帮助您。

当您使用
hardbuttonover.frame.origin.y=hardButton.frame.origin.y
时会发生什么?因为在故事板上这看起来确实正确,所以把按钮盖在UIButton上。您可以使用“自动布局”将其居中,因此无论设备如何,它都将始终位于按钮的中心。然后,当播放器应访问硬按钮时,设置hardButtonCover.ishiden=true。isHidden属性在这里可能很有用。