Placez un indicateur UIActivityIndicator dans un UIButton
Je sais que je suis absent quelque chose de stupide, mais de toute façon, voici mon code:
UIActivityIndicatorView indicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
indicator.hidesWhenStopped = YES;
indicator.frame = btnLogin.frame;
indicator.center = btnLogin.center;
[self.view addSubview:indicator];
[indicator bringSubviewToFront:indicator];
Voici le résultat final:
http://img542.imageshack.us/img542/8172/uiactivity.png
Vous en remercie d'avance!
source d'informationauteur Matthys Du Toit
Vous devez vous connecter pour publier un commentaire.
Je pense que le concept que vous êtes absent est qu'une vue de l'image (et son centre) sont à la fois par rapport à sa superview. Basé sur votre capture d'écran, je suppose que votre textfields et les boutons sont tous dans une vue qui agit comme un conteneur. Si votre bouton de image & centre sont en rapport avec l'conteneur de vue et non pas à la vue du contrôleur de la vue dans son ensemble. Vous attribuez la même image & au centre de l'indicateur d'activité, mais ensuite, vous ajoutez l'indicateur comme une sous-vue de la fenêtre principale et de ne pas le conteneur de vue. Vous avez donc maintenant deux points de vue (le bouton et l'indicateur) avec la même image, mais cette image est dans la relation à deux superviews.
Le changement le plus simple serait juste pour ajouter votre indicateur pour le conteneur affichage que vous utilisez. Mais je suggère l'ajout de l'indicateur comme une sous-vue sur le bouton, puis il suffit de faire un peu de mathématiques pour ajuster sa position.
Comme une note de côté: Votre configuration du centre de la vue juste après l'image de la vue est redondant. Aussi, la dernière vue ajoutés comme une sous-vue est automatiquement le front de sous-vue.
@Musa almatri réponse, j'ai créer extension:
alors vous pouvez l'utiliser comme ceci:
Ici est une Swift 3 version, sans l'aide de balises.
Swift Solution:
Et de le rendre dans le centre de la touche
Ou Utiliser une grande bibliothèque
https://github.com/souzainf3/RNLoadingButton-Swift
Je suis à l'aide de contraintes pour le centre de l'indicateur à l'intérieur de la UIButton.
L'adaptation de l'extension de @DanielQ, qui devient:
Peu de mise à niveau: (ajout de bouton sur superview)
J'ai enlevé le titre du bouton, puis de l'ajouter en arrière une fois que l'animation est terminée, plutôt que l'indicateur de substitution de la titre: