Quelle que soit la taille que je lui donne lors de l'allocation, elle n'affiche qu'une taille fixe. 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 normalisé, donc l'API n'aime pas jouer avec.
Cependant, vous pourriez probablement faire une transformation de mise à l'échelle dessus. Je ne sais pas comment cela pourrait l'affecter visuellement, cependant.
Du point de vue de la conception de l'interface utilisateur, il est généralement préférable de laisser seuls ces éléments normalisés communs. 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 déroute l'utilisateur.
Les éléments suivants créeront un indicateur d'activité de 15 pixels de large:
#import <QuartzCore/QuartzCore.h>
...
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 soit relativement petit est vraiment une violation des idiomes d'interface standard d'Apple - si un indicateur d'activité est de 20px ou 15px ne changera pas l'interprétation d'un utilisateur de ce qui se passe.
Swift 3.0 & Swift 4.
self.activityIndi.transform = CGAffineTransform(scaleX: 3, y: 3)
Il est possible de redimensionner UIActivityIndicator.
CGAffineTransform transform = CGAffineTransformMakeScale(1.5f, 1.5f);
activityIndicator.transform = transform;
La taille d'origine est 1.0f. Maintenant, vous augmentez et réduisez la taille en conséquence.
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)
Voici une extension qui fonctionnerait avec Swift 3. & vérifie pour empêcher la mise à l'échelle 0 (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 ainsi pour passer à 40 pts (2x):
activityIndicatorView.scale(factor: 2.0)
Il existe également de nombreuses autres astuces utiles "CGAffineTransform" avec lesquelles vous pouvez jouer. Pour plus de détails, veuillez consulter Apple Référence de la bibliothèque développeur:
Bonne chance!
Le mieux que vous puissiez faire est d'utiliser le style whiteLarge
. let i = UIActivityIndicatorView(activityIndicatorStyle: UIActivityIndicatorViewStyle.whiteLarge)
.
L'augmentation de la taille de UIActivityIndicatorView
ne change pas la taille de l'indicateur proprement dit, comme vous pouvez le voir sur ces images .