Objective-C的UIActivityIndicatorV

2023-04-09  本文已影响0人  寻心_0a46

UIActivityIndicatorView

显示任务正在进行的视图,即旋转的小菊花图标。可以通过调用 startAnimating 和 stopAnimating 方法来控制活动指示器何时开始和停止动画。如果想在动画停止时自动隐藏活动指示器,可以将 hidesWhenStopped 属性设置为YES。通过使用color属性设置活动指示器的颜色。

UIActivityIndicatorView 常用属性
@property(nonatomic) UIActivityIndicatorViewStyle activityIndicatorViewStyle;

属性描述活动指示器的基本外观。默认值为UIActivityIndicatorViewStyleMedium。

typedef NS_ENUM(NSInteger, UIActivityIndicatorViewStyle) {
    // 默认的活动指示器样式
    UIActivityIndicatorViewStyleMedium  API_AVAILABLE(ios(13.0), tvos(13.0)) = 100,
    // 大型指示器
    UIActivityIndicatorViewStyleLarge   API_AVAILABLE(ios(13.0), tvos(13.0)) = 101,
    // 大型白色指示器 ios 13.0后已过期
    UIActivityIndicatorViewStyleWhiteLarge API_DEPRECATED_WITH_REPLACEMENT("UIActivityIndicatorViewStyleLarge", ios(2.0, 13.0), tvos(9.0, 13.0)) = 0,
    // 指示器的标准白色样式 ios 13.0后已过期
    UIActivityIndicatorViewStyleWhite API_DEPRECATED_WITH_REPLACEMENT("UIActivityIndicatorViewStyleMedium", ios(2.0, 13.0), tvos(9.0, 13.0)) = 1,
    // 指示器的标准灰色样式 ios 13.0后已过期
    UIActivityIndicatorViewStyleGray API_DEPRECATED_WITH_REPLACEMENT("UIActivityIndicatorViewStyleMedium", ios(2.0, 13.0)) API_UNAVAILABLE(tvos) = 2,
};

UIActivityIndicatorViewStyleMedium 默认的活动指示器样式:

截屏2023-04-10 15.49.39.png

UIActivityIndicatorViewStyleWhiteLarge 大型指示器样式:

截屏2023-04-10 15.50.46.png
@property(nonatomic) BOOL                         hidesWhenStopped;

属性描述一个布尔值,用于控制动画停止时调用方是否隐藏。如果此属性的值为YES(默认值),则调用方在不设置动画时将其隐藏属性(UIView)设置为YES。如果 hidesWhenStoped 属性为NO,则动画停止时调用方不会隐藏。使用 stopAnimating 方法可以停止为进度指示器设置动画。

@property (null_resettable, readwrite, nonatomic, strong) UIColor *color API_AVAILABLE(ios(5.0)) UI_APPEARANCE_SELECTOR;

属性描述活动指示器的颜色。如果为活动指示器设置颜色,它将覆盖activityIndicatorViewStyle 属性提供的样式颜色。

@property(nonatomic, readonly, getter=isAnimating) BOOL animating;

属性描述:一个布尔值,指示活动指示器当前是否正在运行其动画

UIActivityIndicatorView 初始化函数
- (instancetype)initWithActivityIndicatorStyle:(UIActivityIndicatorViewStyle)style NS_DESIGNATED_INITIALIZER; 

函数描述:创建活动指示器视图。UIActivityIndicatorView 根据指定的样式调整返回的实例的大小。可以通过activityIndicatorViewStyle属性设置和检索活动指示符的样式。

参数 :

style : 一个常量,用于指定要创建的对象的样式。

返回值 : 初始化的UIActivityIndicatorView对象,如果无法创建该对象,则为nil。

- (instancetype)initWithFrame:(CGRect)frame NS_DESIGNATED_INITIALIZER;

函数描述:使用指定的框架矩形创建活动指示器视图。框架的大小不会影响指示器的大小

参数 :

frame : 视图的框架矩形,以点为单位指定。

返回值 : 初始化的UIActivityIndicatorView对象,如果无法创建该对象,则为nil。

- (instancetype)initWithCoder:(NSCoder *)coder NS_DESIGNATED_INITIALIZER;

函数描述:使用故事版中的数据创建活动指示器视图。

参数 :

coder : 一个未调用的对象。

返回值 : 初始化的UIActivityIndicatorView对象,如果无法创建该对象,则为nil。

UIActivityIndicatorView 常用函数
- (void)startAnimating;

函数描述启动活动指示器的动画。当活动指示器设置动画时,指示器旋转以指示不确定的进度任务,直到调用stopAnimating为止。

- (void)stopAnimating;

函数描述停止活动指示器的动画。调用此方法可停止通过调用 startAnimationing 启动的活动指示器的动画。停止设置动画时,如果 hidesWhenStoped 为YES, 指示器将被隐藏。

调整 UIActivityIndicatorView 大小

由于 UIActivityIndicatorView 无法通过 Size 调整大小,而有时提供的样式大小又无法满足需求时,可以通过 UIView 的 transform 属性按倍数调整指示器的大小,如下:

indicator.transform = CGAffineTransformMakeScale(3,3) ;

\color{red}{超大号活动指示器 :}

- (void)viewDidLoad {
    [super viewDidLoad];
    if (@available(iOS 13.0, *)) {
        UIActivityIndicatorView *indicator = [[UIActivityIndicatorView alloc]initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleLarge];
        indicator.transform = CGAffineTransformMakeScale(3,3) ;
        [self.view addSubview:indicator];
        [indicator mas_makeConstraints:^(MASConstraintMaker *make) {
            make.center.equalTo(self.view);
        }];
        [indicator startAnimating];
        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
            [indicator stopAnimating];
        });
    }
}
截屏2023-04-10 16.22.06.png
上一篇下一篇

猜你喜欢

热点阅读