我可以更改UIActivityIndicator的大小吗?
无论分配给我什么大小,它只显示固定大小。 有可能增加它吗?
码:
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;
大小是由风格固定。 这是一个标准化的界面元素,所以API不喜欢摆弄它。
但是,您可能可以对其进行缩放转换。 不知道这会如何影响它,但是。
仅从UIdeviseangular度来看,通常更好的做法是单独留下这些常见的标准化元素。 用户被教导某些元素以一定的大小出现,并且指的是特定的事物。 标准外观的改变改变了接口文法并使用户感到困惑。
以下将创build一个15px宽的活动指示器:
#import <QuartzCore/QuartzCore.h> ... UIActivityIndicatorView *activityIndicator = [[[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray] autorelease]; activityIndicator.transform = CGAffineTransformMakeScale(0.75, 0.75); [self addSubview:activityIndicator];
虽然我理解TechZen的回答,但我不认为以相对较小的数量调整UIActivityIndicator的大小实际上是违反了苹果的标准化接口习惯用法 – 活动指标是20px还是15px不会改变用户的解释发生了什么事。
可以调整UIActivityIndicator的大小。
CGAffineTransform transform = CGAffineTransformMakeScale(1.5f, 1.5f); activityIndicator.transform = transform;
原始大小是1.0f。 现在您可以相应地增加和减小尺寸。
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)
还有很多其他有用的“CGAffineTransform”技巧,你可以玩。 有关更多详细信息,请参阅Apple Developer Library参考:
祝你好运!
这里是一个扩展,将使用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)
Swift 3.0
self.activityIndi.transform = CGAffineTransform(scaleX: 3, y: 3)