活动指示器UIActivityIndicatorView

简介: 活动指示器UIActivityIndicatorView

UIActivityIndicatorView活动指示器控件还有一个更加形象的俗名——风火轮。活动指示器是iOS系统中自带动画的原生视图控件,其作用是提示用户某项任务正在进行中。举个常用的例子,网络类应用软件都需要联网来获取数据,在网络条件较差的情况下,网络数据的请求往往需要一定时间,为了告知用户当前请求正在进行,防止用户误操作而将应用程序关闭,通常会使用活动指示器来指示用户。UIActivityIndicatorView控件在UI展现上为一个不断旋转的“风火轮”,iOS13之后系统提供了2种样式给开发者选择使用。


使用Xcode开发工具创建一个命名为UIActivityIndicatorViewTest的测试工程,在ViewController.swift文件的viewDidLoad()方法中添加如下代码:


//设置当前界面的背景色
self.view.backgroundColor = UIColor.red
let activity = UIActivityIndicatorView(style: UIActivityIndicatorView.Style.medium)
activity.center = self.view.center
//开始播放
activity.startAnimating()
//添加到当前视图
self.view.addSubview(activity)


活动指示器控件有白色风格,为了便于观察效果,将页面的背景颜色设置为红色。UIActivityIndicatorView控件有其自己的UI尺寸,开发者只需要设置其位置即可。


UIActivityIndicatorView(style:)构造方法需要传入一个UIActivityIndicatorView.Style枚举类型的风格参数,可选枚举值如下:


public enum Style : Int {
    case medium = 100
    case large = 101
}


2466108-8846ec946c99e60c.webp.jpg


运行工程,各种风格的UIActivityIndicatorView控件效果如图14-3~图14-5所示。


2466108-9d7397d5510ffcc0.webp.jpg


medium风格


2466108-e020e39a897a73de.webp.jpg


large风格

UIActivityIndicatorView类中的startAnimating()stopAnimating()方法分别表示开始指示器动画和停止指示器动画。需要注意,当调用stopAnimating()方法后,活动指示器控件会自动隐藏,这个功能是由UIActivityIndicatorView的hidesWhenStopped属性控制的。hidesWhenStopped属性需要设置为一个Bool类型的值,默认为true,当活动指示器动画停止时,活动指示器本身也将隐藏;如果设置为false,动画停止后,活动指示器则不会隐藏。


一般开发场景中,系统提供的活动指示器风格已经可以满足需求。当然UIActivityIndicatorView类中也提供了自定义活动指示器颜色的接口,示例如下:


//设置活动指示器颜色
activity.color = UIColor.green


摘自《Swift4从零到精通iOS开发》

目录
相关文章
|
安全
软件体系结构 - Bell-LaPadula模型
软件体系结构 - Bell-LaPadula模型
463 4
|
1月前
|
开发工具 Swift iOS开发
Xcode 26.3 (17C529) 发布,解锁智能体编程的强大能力
Xcode 26.3 (17C529) 发布 - Apple 平台 IDE
755 3
Xcode 26.3 (17C529) 发布,解锁智能体编程的强大能力
|
iOS开发 开发者
iOS无线真机调试
iOS无线真机调试
909 0
iOS无线真机调试
|
移动开发 JavaScript Java
H5与App使用WebViewJavascriptBridge进行交互
H5与App使用WebViewJavascriptBridge进行交互
1248 0
|
机器学习/深度学习 移动开发
解决mqtt连接报Connection lost (32109) - java.lang.IllegalArgumentException: Invalid UTF-8 char: [a]错误问题
最近生产环境在向mqtt客户端发布数据时反复出现一会断开一会连接错误,捕获的异常是java.lang.IllegalArgumentException: Invalid UTF-8 char: [a]。尝试各种方式都未找到问题的原因,最后在检查发送主题topic的时候发现所发送mqtt客户端的topic的结尾包含了换行符,最终才将问题得以解决。
6460 0
解决mqtt连接报Connection lost (32109) - java.lang.IllegalArgumentException: Invalid UTF-8 char: [a]错误问题
|
编解码 物联网 Android开发
|
大数据 数据挖掘 BI
几款主流的App统计工具解析:友盟、Talking Data、openinstall
本文简要分析友盟、Talking Data、openinstall的优劣势以及特点,希望能给入门人员一点帮助
6116 0
|
安全 iOS开发
iOS页面布局:UIScrollView的布局问题
iOS页面布局:UIScrollView的布局问题
727 63
|
程序员 UED iOS开发
SVProgressHUD和MBProgressHUD的优缺点与SVProgressHUD震动实现
SVProgressHUD和MBProgressHUD的优缺点与SVProgressHUD震动实现
730 0
|
移动开发 Android开发 iOS开发
ios标准页面调用HTML5页面和HTML5调用ios的函数
ios标准页面调用HTML5页面和HTML5调用ios的函数
415 0