Какой бы размер я ни присвоил ему при распределении, он показывает только фиксированный размер. Можно ли его увеличить?
Код:
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;
ios
iphone
swift
uiactivityindicatorview
Росомаха
источник
источник
Ответы:
Размер фиксируется стилем. Это стандартизованный элемент интерфейса, поэтому API не любит возиться с ним.
Тем не менее, вы, вероятно, могли бы сделать на нем масштабирующее преобразование. Однако не уверен, как это повлияет на это визуально.
Просто с точки зрения дизайна пользовательского интерфейса обычно лучше оставить в покое эти общие стандартизированные элементы. Пользователя учили, что определенные элементы имеют определенный размер и означают определенные вещи. Изменение стандартного внешнего вида изменяет грамматику интерфейса и сбивает пользователя с толку.
источник
UIActivityIndicatorViewStyleWhiteLarge
маленький размер, а? Потому что я считаю, что этаLarge
версия имеет хороший размер даже на пустом экране..whiteLarge
Имеет ли это! Спасибо! Я тоже ставилUIActivityIndicatorView(frame: CGRect(x: 0, y: 0, width: 100, height: 100))
иactivityIndicator.backgroundColor = UIColor(red: 255/255, green: 255/255, blue: 255/255, alpha: 0.38)
. На экранах 6 + / 7 + экран по умолчанию слишком крошечныйСледующее создаст индикатор активности шириной 15 пикселей:
#import <QuartzCore/QuartzCore.h> ... UIActivityIndicatorView *activityIndicator = [[[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray] autorelease]; activityIndicator.transform = CGAffineTransformMakeScale(0.75, 0.75); [self addSubview:activityIndicator];
Хотя я понимаю настроение ответа TechZen, я не думаю, что изменение размера UIActivityIndicator на относительно небольшую величину на самом деле является нарушением стандартизированных идиом интерфейса Apple - независимо от того, составляет ли индикатор активности 20 пикселей или 15 пикселей, интерпретация пользователя не изменится. о том, что происходит.
источник
Swift 3.0 и Swift 4.0
self.activityIndi.transform = CGAffineTransform(scaleX: 3, y: 3)
источник
Можно изменить размер UIActivityIndicator.
CGAffineTransform transform = CGAffineTransformMakeScale(1.5f, 1.5f); activityIndicator.transform = transform;
Оригинальный размер 1.0f. Теперь вы соответственно увеличиваете и уменьшаете размер.
источник
let transform = CGAffineTransformMakeScale(1.5, 1.5)
activityIndicator.transform = transform
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)
источник
Вот расширение, которое будет работать со Swift 3.0 и проверяет, чтобы предотвратить масштабирование 0 (или любое другое значение, которое вы хотите запретить):
extension UIActivityIndicatorView { func scale(factor: CGFloat) { guard factor > 0.0 else { return } transform = CGAffineTransform(scaleX: factor, y: factor) } }
Назовите это так, чтобы увеличить до 40 пунктов (2x):
activityIndicatorView.scale(factor: 2.0)
источник
Есть также много других полезных приемов "CGAffineTransform", с которыми вы можете поиграть. Дополнительные сведения см. В справке по библиотеке разработчика Apple:
http://developer.apple.com/library/mac/#documentation/GraphicsImaging/Reference/CGAffineTransform/Reference/reference.html
Удачи!
источник
Лучшее, что вы можете сделать, - это использовать
whiteLarge
стиль.let i = UIActivityIndicatorView(activityIndicatorStyle: UIActivityIndicatorViewStyle.whiteLarge)
.Увеличение размера
UIActivityIndicatorView
не меняет размер самого индикатора, как вы можете видеть на этих рисунках.источник
activityIndicator.transform = CGAffineTransform (scaleX: 1,75, y: 1,75);
Это помогло мне изменить размер индикатора.
источник