Ich habe einen Titelbildschirm eines Spiels, in dem der harte Modus erst später freigeschaltet wird. Bis der Spieler eine Punktzahl von 50 erreicht, wird der harte Knopf auf dem Titelbildschirm von einem UILabel (das ist die Schaltfläche aber ausgegraut) "abgedeckt". In meinem viewdidload muss ich die y-Koordinate des Labels auf die y-Koordinate des UIButton (die harte Schaltfläche) festlegen, so dass es nur angezeigt werden kann, wenn die Voraussetzungen gelöscht sind. Ich setze es manuell mit der y-Koordinate im Storyboard, aber das funktioniert nicht für die verschiedenen Bildschirmgrößen. Dies ist mein Code:Zugriff Y-Koordinate von UIButton?
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
}
}
Anstatt also der Teil "hardButtonCover.frame.origin.y = 5", muss ich es irgendwie „sein hardButtonCover.frame.origin.y = hardButton.frame.origin. y ", wobei hardButton eine UIButton ist und der hardButtonCover den UIButton beim Laden vollständig abdeckt.
Vielen Dank an alle im Voraus.
Was passiert, wenn Sie 'hardButtonCover.frame.origin.y = hardButton.frame.origin.y' verwenden? weil das für mich richtig aussieht – Eric
In der Story Board, legen Sie den ButtonCover über die UIButton. Sie können es mithilfe von AutoLayout zentrieren, sodass es unabhängig vom Gerät immer auf der Schaltfläche zentriert ist. Wenn der Player auf den Hard Button zugreifen soll, setzen Sie hardButtonCover.isHidden = true. Die isHidden -Eigenschaft kann hier nützlich sein. –