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

wol*_*ine 88 iphone uiactivityindicatorview ios swift

无论我在分配时给它的大小,它只显示固定大小.是否有可能增加它?

码:

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;
Run Code Online (Sandbox Code Playgroud)

And*_*sak 161

以下将创建一个15px宽的活动指标:

#import <QuartzCore/QuartzCore.h>

...

UIActivityIndicatorView *activityIndicator = [[[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray] autorelease];
activityIndicator.transform = CGAffineTransformMakeScale(0.75, 0.75);
[self addSubview:activityIndicator];
Run Code Online (Sandbox Code Playgroud)

虽然我理解TechZen答案的情绪,但我认为将UIActivityIndi​​cator的大小调整相对较小的数量实际上违反了Apple的标准化界面习语 - 无论活动指标是20px还是15px都不会改变用户的解释发生了什么事.

  • 这似乎是按比例放大像素,不幸的是大量不可接受. (4认同)

Har*_*cha 61

Swift 3.0和Swift 4.0

self.activityIndi.transform = CGAffineTransform(scaleX: 3, y: 3)
Run Code Online (Sandbox Code Playgroud)

  • 正是我需要的.这应该是最好的答案. (3认同)

Tec*_*Zen 48

尺寸由款式决定.它是一个标准化的界面元素,因此API不喜欢它.

但是,您可能可以对其进行缩放转换.但是,不确定这会如何影响它.

从UI设计的角度来看,通常最好不要仅仅留下这些常见的标准化元素.已经教导用户某些元素以特定大小出现并且它们意味着特定的事物.改变标准外观会改变界面语法并使用户感到困惑.

  • 在某些情况下这很好.然而,如果这是在一个闪屏,你所看到的只是徽标,也许这个微小的微调器在屏幕中间,它看起来有点傻.我无法相信Apple认为一体适用甚至是UI元素中的概念. (14认同)
  • @BenLeggiero你不是在谈论'UIActivityIndi​​catorViewStyleWhiteLarge`,而是关于小尺寸,对吗?因为我认为即使在空屏幕上,这个"大型"版本也有不错的尺寸. (6认同)
  • `.whiteLarge`做到了!谢谢!我还设置了`UIActivityIndi​​catorView(frame:CGRect(x:0,y:0,width:100,height:100)))和`activityIndi​​cator.backgroundColor = UIColor(红色:255/255,绿色:255/255,蓝色: 255/255,alpha:0.38)。在6 + / 7 +屏幕上,默认屏幕太小 (2认同)

vnt*_*udy 43

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

CGAffineTransform transform = CGAffineTransformMakeScale(1.5f, 1.5f);
activityIndicator.transform = transform;
Run Code Online (Sandbox Code Playgroud)

原始大小是1.0f.现在你相应地增加和减小尺寸.

  • `让变换 = CGAffineTransformMakeScale(1.5, 1.5)` `activityIndi​​cator.transform = transform` (3认同)

Vim*_*din 10

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)
Run Code Online (Sandbox Code Playgroud)


Cod*_*der 5

这是一个可与Swift 3.0配合使用的扩展,并进行检查以防止 0 缩放(或您想要禁止的任何值):

extension UIActivityIndicatorView {
    func scale(factor: CGFloat) {
        guard factor > 0.0 else { return }

        transform = CGAffineTransform(scaleX: factor, y: factor)
    }
}
Run Code Online (Sandbox Code Playgroud)

像这样调用它以缩放到 40 pts (2x):

activityIndicatorView.scale(factor: 2.0)
Run Code Online (Sandbox Code Playgroud)