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

时间:2010-04-14 14:20:50

标签: ios iphone swift uiactivityindicatorview

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

代码:

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;

9 个答案:

答案 0 :(得分:160)

以下内容将创建一个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的大小调整相对较小的数量实际上违反了Apple的标准化界面惯用语 - 无论活动指标是20px还是15px都不会改变用户对正在发生的事情的解释。

答案 1 :(得分:47)

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

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

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

答案 2 :(得分:46)

Swift 3.0&amp; Swift 4.0

self.activityIndi.transform = CGAffineTransform(scaleX: 3, y: 3)

答案 3 :(得分:42)

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

$.ajax({
            //web service pubblico di prova
            url: "*web service*",
            type: 'POST',
            dataType: "xml", 

            processData: false,

            contentType: "text/xml",

            data: soapMessage, 
            success: function(soapResponse){
                var xhttp = new XMLHttpRequest();

                var ss= $(soapResponse);
                alert($(soapResponse).text());
                var result=$(soapResponse).find("SoggettiTemplate").text();

                $('SoggettiTemplate',ss.text()).each(function(i){
                    var ID= $(this).attr("ID");
                    var ID= $(this).attr("ID");
                    //getting the id parameter
                })



              },
              error: function (request, status, error) {
                  alert(request);
                  alert(status);
                  alert(error);
              }
          });

原始尺寸为1.0f。现在你相应地增加和减小尺寸。

答案 4 :(得分:9)

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)

答案 5 :(得分:3)

这是一个适用于 Swift 3.0 &amp;检查以防止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)

答案 6 :(得分:2)

还有很多其他有用的“CGAffineTransform”技巧可以玩。有关详细信息,请参阅Apple Developer Library参考:

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

祝你好运!

答案 7 :(得分:1)

您可以做的最好是使用whiteLarge样式。 let i = UIActivityIndicatorView(activityIndicatorStyle: UIActivityIndicatorViewStyle.whiteLarge)

增加UIActivityIndicatorView的尺寸不会改变指标的大小,正如您在这些图片中看到的那样。small indicator "large" indicator

答案 8 :(得分:1)

activityIndi​​cator.transform = CGAffineTransform(scaleX:1.75,y:1.75);

这对我改变指标的大小很有帮助。