Notice.swift

一条通知的视图实体。

定义

当notice被移除时的通知

1
public static let didRemoved: NSNotification.Name

主题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/// 主题
public enum Theme : String {

case success

case warning

case error

case note

case normal

case lightGray

case darkGray

case white

case plain

public var color: UIColor { get }
}

alert 操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
public struct NoticeAlertOptions : OptionSet {
public var rawValue: UInt

public init(rawValue: UInt)

// MARK: 以什么样的速度
/// 正常速度,默认
public static var normally: NoticeAlertOptions { get }

/// 缓慢地
public static var slowly: NoticeAlertOptions { get }

/// 快速地
public static var fast: NoticeAlertOptions { get }

/// 颜色变深,默认
public static var darken: NoticeAlertOptions { get }

/// 颜色变浅
public static var lighten: NoticeAlertOptions { get }

/// 闪烁(alpha: 1 -> 0)
public static var flash: NoticeAlertOptions { get }

/// 一次,默认
public static var once: NoticeAlertOptions { get }

/// 两次
public static var twice: NoticeAlertOptions { get }

/// 呼吸灯效果
public static var breathing: NoticeAlertOptions { get }

}

属性

正文区域最大高度

1
public var bodyMaxHeight: CGFloat { get set }

是否可通过手势移除这条通知

1
public var allowRemoveByGesture: Bool

主题

1
2
3
4
5
/// 主题色(改变背景颜色)
public var themeColor: UIColor { get set }

/// 主题
public var theme: NoticeBoard.Notice.Theme { get set }

模糊效果

1
public var blurEffectStyle: UIBlurEffectStyle? { get set }

子视图,自定义的时候可以使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public var contentView: UIView

public var iconView: UIImageView?

public var titleLabel: UILabel?

public var bodyView: UITextView?

public var visualEffectView: UIVisualEffectView?

public var dragButton: UIButton?

public var actionButton: UIButton?

public var progressLayer: CALayer?

标题

1
public var title: String { get set }

正文

1
public var body: String { get set }

图标

1
public var icon: UIImage? { get set }

进度

1
public var progress: CGFloat { get set }

层级

1
public var level: NoticeBoard.NoticeBoard.Level { get set }

生命周期函数

初始化

1
2
3
4
5
public convenience init(title: String?, icon: UIImage?, body: String?)

public convenience init(theme: Theme)

public override init(frame: CGRect)

从NoticeBoard中移除

1
open func removeFromNoticeBoard()

事件

alert()

1
2
3
4
/// 警示(如果一个notice已经post出来了,想要再次引起用户注意,可以使用此函数)
///
/// - Parameter options: 操作
public func alert(options: NoticeAlertOptions = [])

例如,常规的:

1
2
3
notice.alert()
// 等同于(以正常的速度变暗一次)
notice.alert(options: [.normally, .darken, .once])

要实现类似于iPhone X左上角录屏时的呼吸灯效果,可以这样:

1
notice.alert(options: [.slowly, .breathing])

要强烈而急促地闪烁两次,可以这样:

1
notice.alert(options: [.fast, .flash, .twice])

设置按钮事件

1
2
3
4
/// "→"按钮的事件
///
/// - Parameter action: "→"按钮的事件
open func actionButtonDidTapped(action: @escaping (Notice, UIButton) -> Void)



评论

文明评论,请勿灌水。为了便于区分和接收回复提醒,请您在留言时填写一下昵称邮箱。 不定期清理没有昵称和灌水的评论。