2017-06-25 2 views
0

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.

+1

Was passiert, wenn Sie 'hardButtonCover.frame.origin.y = hardButton.frame.origin.y' verwenden? weil das für mich richtig aussieht – Eric

+1

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. –

Antwort

-1

Ich denke, Sie sollten Auto-Layout-Einschränkungen verwenden. und dann machen Sie eine Verbannung aus, die Sie unter bestimmten Bedingungen aktualisieren möchten. Ich denke, das sollte funktionieren und ein besserer Weg sein, es zu simulieren. Wenn du das auf diese Weise machen willst, kann ich dir helfen, wenn es nötig ist.