Swift - 第三方透明指示器SwiftNotice使用详解
作者:hangge | 2018-04-26 08:10
前面介绍的 MBProgressHUD 是使用 Objective-C 编写的,接下来我再介绍另一个 Swift 版本的 HUD 库:SwiftNotice。
一、SwiftNotice
1,基本介绍
(1)SwiftNotice 是一个使用纯 Swift 写的 HUD 库,该库提供多种类型的弹出窗口。
(2)同时 SwiftNotice 可完美适配各种滚动视图(scrollview),并且支持 iPhone X。
2,安装配置
(1)从 GitHub 上下载最新的代码:https://github.com/johnlui/SwiftNotice
(2)将下载下来的源码包中的 SwiftNotice.swift 文件添加到项目中来即可。
二、基本用法
1,最简单的“菊花”等待提示
下面样例我们在页面打开时自动显示一个等待提示框。要注意的是等待提示框不会自动消失,需要我们手动将其隐藏。
(1)我们可以直接调用 SwiftNotice 提供的类方法。
import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() } override func viewDidAppear(_ animated: Bool) { //显示等待提示框 SwiftNotice.wait() } }
(2)由于 SwiftNotice 还对 UIResponder 进行了扩展,我们直接使用扩展方法也是可以的。
import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() } override func viewDidAppear(_ animated: Bool) { //显示等待提示框 self.pleaseWait() } }
2,纯文字提示
(1)同样有两种方法显示该提示:
(2)默认情况下,文字提示显示 2 秒后会自动隐藏。我们可以通过参数修改显示时间,或者是否自动隐藏。
//方法1 SwiftNotice.showText("请稍等") //方法2 self.noticeOnlyText("请稍等")
(2)默认情况下,文字提示显示 2 秒后会自动隐藏。我们可以通过参数修改显示时间,或者是否自动隐藏。
//显示后不自动隐藏 SwiftNotice.showText("请稍等", autoClear: false) //显示后过个1秒钟自动隐藏 SwiftNotice.showText("请稍等", autoClearTime: 1)
3,成功提示
//方法1 SwiftNotice.showNoticeWithText(.success, text: "操作成功", autoClear: true, autoClearTime: 2) //方法2 self.noticeSuccess("操作成功", autoClear: true, autoClearTime: 2)
4,失败提示
//方法1 SwiftNotice.showNoticeWithText(.error, text: "操作失败", autoClear: true, autoClearTime: 2) //方法2 self.noticeError("操作失败", autoClear: true, autoClearTime: 2)
5,普通消息提示
//方法1 SwiftNotice.showNoticeWithText(.info, text: "普通消息", autoClear: true, autoClearTime: 2) //方法2 self.noticeInfo("普通消息", autoClear: true, autoClearTime: 2)
6,关闭提示框
下面的两种方法都可以关闭所有弹出的提示框。
//方法1 SwiftNotice.clear() //方法2 self.clearAllNotice()
三、高级功能
1,顶部状态栏消息
//方法1 SwiftNotice.noticeOnStatusBar("这是一条通知消息", autoClear: true, autoClearTime: 2) //方法2 self.noticeTop("这是一条通知消息", autoClear: true, autoClearTime: 2)
2,播放图片动画
(1)假设我们有如下几张图片。
(2)想让提示框能够按一定的顺序、以及时间间隔进行切换显示,从而形成连续的动画。并且该动画可以循环播放。
(3)这个功能同样有两种方式实现:
//准备好图片数组 var images = [UIImage]() for i in 1..<74 { images.append(UIImage(named: "frame_apngframe\(i)")!) } //方法1 SwiftNotice.wait(images, timeInterval: 50) //每隔50毫秒切换一张图片 //方法2 self.pleaseWaitWithImages(images, timeInterval: 50) //每隔50毫秒切换一张图片
全部评论(2)
和1楼问题同样,怎么在其后面加一层半透明或者不透明的view
站长回复:这个组件目前还没有提供这个功能,有需要的话只能自己手动实现了。
怎么在这其中加入遮罩呢
站长回复:不太明白你要实现什么样的效果?