Bekommen Zentrum im Swift-UIView
Ich bin versucht zu schreiben, eine Globale Funktion, die fügt eine activityIndicator jeder Ansicht (meist imageViews obwohl) durch den Aufruf solcher Funktion.
Die Funktion habe ich jetzt ist aus:
public func addActivityIndicatorToView(activityIndicator: UIActivityIndicatorView, view: UIView){
//activityIndicator configuration ...
activityIndicator.center = view.center
view.addSubview(activityIndicator)
activityIndicator.startAnimating()
}
Aber ich bekomme nicht die Mitte der Ansicht für einige Grund.
Ich habe auch versucht verschiedene Lösungen, um SO und Google, aber keiner funktionierte bis jetzt.
Gibt es eine Möglichkeit, um den Mittelpunkt und legen Sie die activityIndicator auf jede UIView?
- Wenn keine der Lösungen, die in @EmilioPelaez Antwort arbeiten, würde ich vorschlagen, die überprüfung der Größe der Ansicht. In der Methode werden Sie die Einstellung der LED ' s center?
- In einer globalen Klasse, die alle Methoden gemeinsam über das Projekt
- Sie könnte die Einstellung der position des
activityIndicator
bevor der Blick auf die Rahmen richtig eingestellt wurde (inviewDidLoad
zum Beispiel)... println("activityIndicator.center before = \(activityIndicator.center.x) x \(activityIndicator.center.y)") activityIndicator.center = view.center println("activityIndicator.center after = \(activityIndicator.center.x) x \(activityIndicator.center.y)")
zeigen, dass die center haben sich geändert. Ich würde denken, über erfrischende Probleme, nicht zentrieren.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hatte ich Ihr problem reproduzieren leicht (siehe mein Kommentar).
Ich denke, es könnte ein problem der auto-layout". So kann man die Verwendung von constraints statt berechnen position ?
Hoffe, dass das helfen könnte.
Swift 3:
oder Sie können versuchen:
Den
center
Eigenschaft ist relativ zu einer Ansicht der superview. Also, wenn Ihr view-frame ist{10, 10, 20, 20}
,center
wird{20, 20}
.Ich vermute, Sie wollen, um die Mitte der
activityIndicator
imview
.Können Sie tun