Ich habe eine "mehr" Schaltfläche in meiner App erstellt, und eine coole Animation, wenn wir den Knopf fokussieren. Es funktioniert sehr gut auf iPhone 6, aber nicht auf 6S plus oder 5s zum Beispiel.Button.center funktioniert nicht auf allen Bildschirmen in Swift 3/4
Dies ist meine Schaltfläche und meine Einschränkungen:
ich eine backgroundView, die ich animieren, wenn ich die Schaltfläche den Fokus:
func createBackgroundEffet(_ backgroundView: UIView, size: Int, buttonFocused: UIButton){
backgroundView.frame = CGRect(x: 0, y: 0, width: size, height: size)
backgroundView.backgroundColor = UIColor(red: 200/255, green: 200/255, blue: 200/255, alpha: 1)
backgroundView.layer.cornerRadius = backgroundView.frame.size.width/2
backgroundView.clipsToBounds = true
backgroundView.center = buttonFocused.center
backgroundView.alpha = 1
self.insertSubview(backgroundView, at: 2)
}
(I gesetzt backgroundView.alpha = 1 für das Beispiel)
Und dies die Ergebnisse je nach Bildschirm (auf iPhone 6 ist es perfekt auf der Schaltfläche "mehr").
Ich denke, der buttonFocused.center Wert der Wert aus dem iPhone ist 6.
Was kann ich tun, um dieses Problem zu beheben?
wo tun Du nennst das 'createBackgroundEffet'? – Tj3n
In der Ansicht didLoad() oder watchFromNib() der Ansicht – KevinB
Versuchen Sie es von 'viewWillAppear' oder' viewDidLayoutSubview' aufrufen, in 'viewDidLoad' die Ansicht wurde noch nicht Layout, Ergebnis in falsches Verhalten – Tj3n