我可以更改UIActivityIndi​​cator的大小吗?

无论分配给我什么大小,它只显示固定大小。 有可能增加它吗?

码:

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的回答,但我不认为以相对较小的数量调整UIActivityIndi​​cator的大小实际上是违反了苹果的标准化接口习惯用法 – 活动指标是20px还是15px不会改变用户的解释发生了什么事。

可以调整UIActivityIndi​​cator的大小。

 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参考:

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

祝你好运!

这里是一个扩展,将使用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)