最后更新:2019/3/22。
如果您喜欢这个项目,请给它一个星⭐。这将表明您对创建者的欣赏,并帮助他人发现这个仓库。
✍️ 关于
🏗 安装
CocoaPods
message-view
可以通过CocoaPods
pod 'message-view', '~> 1.0.0'
手动
您始终可以使用复制粘贴源代码的方法
📺 演示
请等待 .gif
文件加载...(它们大约有 25Mb
)
🍱 功能
- 易于使用
- 您只需通过
MessageView
类调用一个函数即可。
- 您只需通过
- 灵活的
API
- 包括多个自定义点,允许您按自己的需求装饰
MessageView
。
- 包括多个自定义点,允许您按自己的需求装饰
- 样式
- 您可以通过遵循
MessageViewBuilder
协议并给MessageView
类的configure
方法提供一个实例来供应自定义样式的实例来实现多种视觉样式。
- 您可以通过遵循
- 行为
- 您可以选择在几秒钟后组件自动消失,或者您可以手动调用
hide
方法来实现。
- 您可以选择在几秒钟后组件自动消失,或者您可以手动调用
- 自动布局
- 您不需要做任何有关自动布局的事情 —— 组件会适当处理所有事情。
- 自定义图标
- 您可以提供自己的图标并编程设置其颜色。
📚 代码示例
Activity
展示带有活动指示视图的消息。这种展示方式的目的是报告某个长时间运行的任务
MessageView.showActivity(withMessage: "Please wait...", dismissAfter: 3.0)
或者,您可以省略 dismissAfter
参数,并通过调用 hide
方法手动隐藏 MessageView
MessageView.hide()
Success
展示一个成功消息。这种展示方式的目的是报告某个任务已经成功或完成
MessageView.showSuccess(withMessage: "Success!", dismissAfter: 2.25)
Warning
展示一个警告消息。这种展示方式的目的是报告某个事情没有成功或失败
MessageView.showWarning(withMessage: "Warning!", dismissAfter: 2.5)
Custom
在消息上方展示自定义图片。这种展示样式的目的是由您,即开发者定义。例如,我们可以通过提供 failureImage
和相应的 tintColor
来展示一个失败的消息 MessageView
。
MessageView.showCustom(image: failureImage,
tintColor: .red,
withMessage: "Something went wrong",
dismissAfter: 2.8)
Message update
消息更新用于在屏幕上显示时刷新 MessageView
中的文本消息。当进行长时间运行的任务时,我们需要报告各种进度阶段,这时它非常有用。
MessageView.showActivity(withMessage: “Initializing the task...")
fetcher.fetch(data) { result in
MessageView.update(message: "Completed! Result is \(result)", dismissAfter: 3.0)
handle(result)
}.progress { value in
MessageView.update(message: "Fetching: \(value)%")
}
样式
存在一个名为 MessageViewBuilder
的协议,它定义了多个属性。通过创建自己的样式版本或使用现有的样式,您可以自定义组件的视觉。
MessageView.configure(with: .dark)
MessageView.configure(with: .extraLight)
MessageView.configure(with: .default)
或者,您可以使用带有自己样式类型的替代 configure
方法。
public struct MessageViewNightStyleBuilder: MessageViewBuilder {
public var activityIndicatorColor: UIColor = .init(red: 252 / 256, green: 0.0, blue: 0.0, alpha: 1.0)
public var messageColor: UIColor = .init(red: 71 / 256, green: 68 / 256, blue: 69 / 256, alpha: 1.0)
public var messageFont: UIFont = UIFont.systemFont(ofSize: 20)
public var animationDuration: TimeInterval = 0.475
public var loadingIndicatorSize: CGFloat = 55
public var loadingIndicatorInitialTransform: CGAffineTransform = CGAffineTransform(scaleX: 0.12, y: 0.12)
public var successColor: UIColor = .init(red: 0.0, green: 134 / 256, blue: 245 / 256, alpha: 1.0)
public var warningColor: UIColor = .init(red: 245 / 256, green: 0.0, blue: 0.0, alpha: 1.0)
public var backgroundStyle: MessageView.BackgroundStyle = .dark
}
MessageView.configure(with: MessageViewNightStyleBuilder())