Obtenez au centre de toute UIView en Swift
Je suis en train d'écrire une fonction globale qui ajoute un activityIndicator à tout point de vue (surtout imageViews si) par l'appel de cette fonction.
La fonction que j'ai droit est constitué de:
public func addActivityIndicatorToView(activityIndicator: UIActivityIndicatorView, view: UIView){
//activityIndicator configuration ...
activityIndicator.center = view.center
view.addSubview(activityIndicator)
activityIndicator.startAnimating()
}
Mais je ne suis pas le centre de la vue pour une raison quelconque.
J'ai aussi essayé différentes solutions autour de AFIN de et Google, mais aucune n'a fonctionné jusqu'à maintenant.
Est-il un moyen d'obtenir le point central et le jeu de la activityIndicator à tout UIView?
Si aucune des solutions dans @EmilioPelaez réponse, je voudrais vous suggérons de vérifier la taille de votre point de vue. Dans la méthode qui êtes-vous du réglage de l'indicateur d'activité du centre?
Dans une classe, qui contient toutes les méthodes partagées à travers le projet
Vous pourriez être le réglage de la position de la
Dans une classe, qui contient toutes les méthodes partagées à travers le projet
Vous pourriez être le réglage de la position de la
activityIndicator
avant l'affichage de l'image a été correctement paramétré (en viewDidLoad
par exemple)...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)")
montrent que le centre ont changé. Je pense à propos de l'actualisation de problèmes, pas de centrage.
OriginalL'auteur Phillip | 2015-05-12
Vous devez vous connecter pour publier un commentaire.
J'ai eu de reproduire votre problème facilement (voir mon commentaire).
Je pense que ça pourrait être un problème de mise en page automatique. Alors peut-être vous pouvez utiliser à la place les contraintes de calculer la position ?
Espère que pouvait l'aider.
Incroyable réponse!!! Il fonctionne pour moi aussi
C'est certainement le plus universel de la solution puis d'autres que l'utilisation de la vue.centre
cela ne marchera pas si vous en avez une-vue-contrôleur qui a son point de vue sous la barre de navigation et celui qui n'a pas
OriginalL'auteur Romain TAILLANDIER
Swift 3:
ou vous pouvez essayer:
OriginalL'auteur Gilad Brunfman
La
center
propriété est relative à une vue superview. Donc, si votre vue est{10, 10, 20, 20}
,center
va être{20, 20}
.Je devine que vous voulez centrer le
activityIndicator
dansview
.Vous pouvez faire
comment {20, 20 } ? pouvez-vous expliquer
le centre est à l'origine de plus de la moitié de la taille.
OriginalL'auteur EmilioPelaez