Loaf 0.7.0

Loaf 0.7.0

Mat Schmid 维护。



Loaf 0.7.0

Loaf🍞

受 Android 的 Toast 启发,
Loaf 是一个易于使用 iOS Toast 的 Swift 框架

Version Liscence Platform Swift4.2 Readme Score


用法

从任何视图控制器中,可以通过调用以下内容来显示 Loaf

Loaf("Message goes here", sender: self).show()

这将产生以下效果

screen shot 2019-02-27 at 3 59 07 pm

下面,我将讨论如何进一步自定义您的 Loaf!

游乐场

我已经提供了一个示例项目以展示 Loaf 的用法!只需克隆此仓库,然后打开 LoafExamples.xcodeproj。从这里,您可以在 Examples.swift 中查看和实验自定义 Loaf 风格。

自定义

基本样式

Loaf自带4种基本样式。

成功 错误
screen shot 2019-02-27 at 3 45 44 pm screen shot 2019-02-27 at 3 45 52 pm
警告 信息
screen shot 2019-02-27 at 3 45 58 pm screen shot 2019-02-27 at 3 53 26 pm

可以在 style 属性中指定这些样式。例如,要使用带 成功 样式的Loaf,调用方式如下

Loaf("This is a success loaf", state: .success, sender: self).show()

自定义样式

Loaf允许您指定自定义样式!这样可以设置颜色、字体、图标及其对齐方式。以下是一些自定义Loaf样式的示例!

颜色和图标 图标右对齐 无图标
screen shot 2019-02-27 at 6 09 33 pm screen shot 2019-02-27 at 6 13 13 pm screen shot 2019-02-27 at 6 13 22 pm

所有这些属性都是作为自定义状态的一部分指定的,如下所示

Loaf("Switched to light mode", state: .custom(.init(backgroundColor: .black, icon: UIImage(named: "moon"))), sender: self).show()

显示和消失

Loaf允许您指定显示和消失方向。显示方向与消失方向无关。以下是一些示例

垂直
vertical left
混合
right mix

这些在函数签名中指定,如下所示

Loaf("Loaf message", presentingDirection: .left, dismissingDirection: .vertical, sender: self).show()

位置

Toast通常在屏幕底部显示,但Loaf也允许您在屏幕顶部显示。下面是一个在视图顶部显示的Loaf示例

screen shot 2019-02-27 at 8 30 04 pm

这也在函数签名中指定,如下所示

Loaf("Loaf message", location: .top, sender: self).show()

其他

指定展示时长。在展示Loaf时使用.show(),可以指定展示时长。默认值为4秒,但预设了2秒和8秒的值。这可以通过使用.show(.short)来指定2秒,或者使用.show(.long)指定8秒。也可以使用.show(.custom(x))来指定自定义时长,其中x表示秒数。

⚠️新增于0.5.0

  • 可以在Loaf的show()函数签名中指定完成处理程序。当消失动画完成后或当Loaf被轻触时,该块将被调用。现在通过枚举传递给完成处理程序,表示Loaf是被轻触还是超时。以下是一个使用完成处理程序的示例
Loaf(example.rawValue, sender: self).show { dismissalType in
     switch dismissalType {
          case .tapped: print("Tapped!")
          case .timedOut: print("Timmed out!")
     }
}
  • 可以通过Style组件指定Loaf的宽度。宽度可以指定为固定大小(例如:280px)或屏幕宽度的百分比(例如:0.8 -> 80%)。以下是示例用法
Loaf(example.rawValue, state: .custom(.init(backgroundColor: .black, width: .screenPercentage(0.8))), sender: self).show()
  • 尽可能在标签栏上方展示Loaf。
  • 可以通过全局方法手动消失Loaf。
Loaf.dismiss(sender: self) // Where `self` is the Loaf's presenter

安装

Cocoapods

Loaf已在Cocoapods上。在您的项目中配置Cocoapods后,只需将以下内容添加到您的Podfile中

pod 'Loaf'

然后从包含Podfile的目录中运行pod install

不要忘记在每个您想使用Loaf的文件中包含import Loaf

要求

  • Swift 4.2+
  • iOS 9.0+

贡献

欢迎提交pull请求、功能请求和错误报告🚀


感谢@kirkbyo在困难的部分给予我帮助💪

❤️🇨🇦Mat Schmid