web-dev-qa-db-ja.com

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;
88
wolverine

サイズはスタイルによって固定されます。これは標準化されたインターフェース要素なので、APIはそれをいじるのを好みません。

ただし、おそらくスケーリング変換を行うことができます。ただし、それが視覚的にどのように影響するかはわかりません。

UIデザインの観点から見ると、通常、これらの共通の標準化された要素はそのままにしておく方が良いでしょう。ユーザーは、特定の要素が特定のサイズで表示され、特定のことを意味することを教えられています。標準の外観を変更すると、インターフェイスの文法が変更され、ユーザーが混乱します。

47
TechZen

以下は15ピクセル幅のアクティビティインジケータを作成します。

#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の標準化されたインターフェイスのイディオムに違反するとは思いません。何が起こっているのか。

161
Andrew Vilcsak

Swift 3.0&Swift 4.

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

UIActivityIndi​​catorのサイズを変更することは可能です。

CGAffineTransform transform = CGAffineTransformMakeScale(1.5f, 1.5f);
activityIndicator.transform = transform;

元のサイズは1.0fです。これに応じて、サイズを増減します。

42
vntstudy

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)
10
Vimal Saifudin

Swift 3.&で機能する拡張機能を次に示します。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)
3
CodeBender

また、他にも役立つ「CGAffineTransform」トリックがたくさんあります。詳細については、Apple Developer Libraryリファレンス:

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

幸運を!

2
Hordaric

最善の方法は、whiteLargeスタイルを使用することです。 let i = UIActivityIndicatorView(activityIndicatorStyle: UIActivityIndicatorViewStyle.whiteLarge)

UIActivityIndicatorViewのサイズを増やしても、これらの写真でわかるように、インジケーターのサイズは変わりません。 small indicator"large" indicator

1
wsgeorge