Objective-C的UIActivityIndicatorV
UIActivityIndicatorView
显示任务正在进行的视图,即旋转的小菊花图标。可以通过调用 startAnimating 和 stopAnimating 方法来控制活动指示器何时开始和停止动画。如果想在动画停止时自动隐藏活动指示器,可以将 hidesWhenStopped 属性设置为YES。通过使用color属性设置活动指示器的颜色。
UIActivityIndicatorView 常用属性
@property(nonatomic) UIActivityIndicatorViewStyle activityIndicatorViewStyle;
属性描述:活动指示器的基本外观。默认值为UIActivityIndicatorViewStyleMedium。
- UIActivityIndicatorViewStyle提供的枚举值:
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.pngUIActivityIndicatorViewStyleWhiteLarge 大型指示器样式:
截屏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) ;
- (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