Puis-je changer la taille de UIActivityIndicator?

Quelle que soit la taille que je lui atsortingbue pendant l’allocation, elle n’a que des dimensions fixes. Est-il possible de l’augmenter?

Code:

activityIndicator = [[UIActivityIndicatorView alloc] initWithFrame: CGRectMake(142.00, 212.00, 80.0, 80.0)]; [[self view] addSubview:activityIndicator]; [activityIndicator sizeToFit]; activityIndicator.autoresizingMask = (UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin); activityIndicator.hidesWhenStopped = YES; activityIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyleWhiteLarge; 

La taille est fixée par le style. C’est un élément d’interface standardisé, de sorte que l’API n’aime pas trop la manipuler.

Cependant, vous pourriez probablement effectuer une transformation de mise à l’échelle. Pas sûr comment cela pourrait affecter visuellement, cependant.

Du sharepoint vue de la conception de l’interface utilisateur, il vaut généralement mieux laisser ces éléments normalisés communs seuls. L’utilisateur a appris que certains éléments apparaissent dans une certaine taille et qu’ils signifient des choses spécifiques. La modification de l’apparence standard modifie la grammaire de l’interface et perturbe l’utilisateur.

Ce qui suit va créer un indicateur d’activité de 15px de large:

 #import  ... UIActivityIndicatorView *activityIndicator = [[[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray] autorelease]; activityIndicator.transform = CGAffineTransformMakeScale(0.75, 0.75); [self addSubview:activityIndicator]; 

Bien que je comprenne le sentiment de la réponse de TechZen, je ne pense pas que l’ajustement de la taille d’un UIActivityIndicator par une quantité relativement petite constitue une violation des idiomes d’interface standard d’Apple – si un indicateur d’activité est 20px ou 15px ne changera pas l’interprétation d’un utilisateur de ce qui se passe

Il est possible de redimensionner UIActivityIndicator.

 CGAffineTransform transform = CGAffineTransformMakeScale(1.5f, 1.5f); activityIndicator.transform = transform; 

La taille originale est 1.0f. Maintenant, vous augmentez et réduisez la taille en conséquence.

Swift 3.0 et Swift 4.0

 self.activityIndi.transform = CGAffineTransform(scaleX: 3, y: 3) 

Swift3

  var activityIndicator = UIActivityIndicatorView() activityIndicator = UIActivityIndicatorView(activityIndicatorStyle: UIActivityIndicatorViewStyle.gray) activityIndicator.frame = CGRect(x: 0, y: 0, width: 50, height: 50) let transform: CGAffineTransform = CGAffineTransform(scaleX: 1.5, y: 1.5) activityIndicator.transform = transform activityIndicator.center = self.view.center activityIndicator.startAnimating() self.view.addSubview(activityIndicator) 

Il y a aussi beaucoup d’autres astuces utiles “CGAffineTransform” avec lesquelles vous pouvez jouer. Pour plus de détails, consultez la référence Apple Developer Library:

http://developer.apple.com/library/mac/#documentation/GraphicsImaging/Reference/CGAffineTransform/Reference/reference.html

Bonne chance!

Voici une extension qui fonctionnerait avec Swift 3.0 et vérifie que 0 ne soit pas mis à l’échelle (ou la valeur que vous souhaitez interdire):

 extension UIActivityIndicatorView { func scale(factor: CGFloat) { guard factor > 0.0 else { return } transform = CGAffineTransform(scaleX: factor, y: factor) } } 

Appelez-le comme si pour l’échelle à 40 points (2x):

 activityIndicatorView.scale(factor: 2.0) 

Le mieux que vous puissiez faire est d’utiliser le style whiteLarge . let i = UIActivityIndicatorView(activityIndicatorStyle: UIActivityIndicatorViewStyle.whiteLarge) .

Augmenter la taille de UIActivityIndicatorView ne change pas la taille de l’indicateur proprement dit, comme vous pouvez le voir sur ces images. petit indicateur