message-view 1.0.0

message-view 1.0.0

Astemir Eleev维护。



  • Astemir Eleev

message-view Awesome

Platforms Language Autolayout Build Status CocoaPod License

最后更新:2019/3/22。

如果您喜欢这个项目,请给它一个星⭐。这将表明您对创建者的欣赏,并帮助他人发现这个仓库。

✍️关于

✉️用于iOS的易于使用的HUD组件[活动报告、成功或警告消息等]

🏗安装

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())

👨‍💻作者

Astemir Eleev

🔖许可

该项目在 MIT 许可证 下可用。该项目使用 图标,条件如下:以下条件