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 }
运行工程,各种风格的UIActivityIndicatorView控件效果如图14-3~图14-5所示。
medium风格
large风格
UIActivityIndicatorView类中的startAnimating()
和stopAnimating()
方法分别表示开始指示器动画和停止指示器动画。需要注意,当调用stopAnimating()
方法后,活动指示器控件会自动隐藏,这个功能是由UIActivityIndicatorView的hidesWhenStopped
属性控制的。hidesWhenStopped
属性需要设置为一个Bool类型的值,默认为true,当活动指示器动画停止时,活动指示器本身也将隐藏;如果设置为false,动画停止后,活动指示器则不会隐藏。
一般开发场景中,系统提供的活动指示器风格已经可以满足需求。当然UIActivityIndicatorView类中也提供了自定义活动指示器颜色的接口,示例如下:
//设置活动指示器颜色 activity.color = UIColor.green
摘自《Swift4从零到精通iOS开发》