SPM地址:
https://github.com/Daltron/NotificationBanner
简单使用:
使用前先import NotificationBannerSwift
let banner = NotificationBanner(title: "Test Title", subtitle: "This is a test subtitle.", style: BannerStyle.info)
banner.show()
通知样式:
通知样式包括如下种类:
- danger
- case info
- case customView
- case success
- case warning
下面以警告为例:
let banner = NotificationBanner(title: "Test Title", subtitle: "This is a test subtitle.", style: BannerStyle.warning)
banner.show()
更多用法:
底部显示:
let banner = NotificationBanner(title: "Test Title", subtitle: "This is a test subtitle.", style: BannerStyle.warning)
banner.show()
显示附加图片的通知:
let rightView = UIImageView(image: UIImage(named: "ef"))
let banner = NotificationBanner(title: "Side View", subtitle: "This is a side view with an image", rightView: rightView, style: BannerStyle.success)
banner.show()
重交互(Haptic Touch通知):
let banner = NotificationBanner(title: "Test Title", subtitle: "This is a test subtitle.", style: BannerStyle.info)
banner.show()
banner.haptic = .heavy
常见代理:
先实现代理方法,再设置代理:
NotificationBannerDelegate
banner.delegate = self
func notificationBannerWillAppear(_ banner: BaseNotificationBanner) {
print("------> notificationBannerWillAppear")
}
func notificationBannerDidAppear(_ banner: BaseNotificationBanner) {
print("------> notificationBannerDidAppear")
}
func notificationBannerWillDisappear(_ banner: BaseNotificationBanner) {
print("------> notificationBannerWillDisappear")
}
func notificationBannerDidDisappear(_ banner: BaseNotificationBanner) {
print("------> notificationBannerDidDisappear")
}
全部代码:
import UIKit
import NotificationBannerSwift
class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate, NotificationBannerDelegate {
func notificationBannerWillAppear(_ banner: BaseNotificationBanner) {
print("------> notificationBannerWillAppear")
}
func notificationBannerDidAppear(_ banner: BaseNotificationBanner) {
print("------> notificationBannerDidAppear")
}
func notificationBannerWillDisappear(_ banner: BaseNotificationBanner) {
print("------> notificationBannerWillDisappear")
}
func notificationBannerDidDisappear(_ banner: BaseNotificationBanner) {
print("------> notificationBannerDidDisappear")
}
var dataArray: Array<String> = ["Simple Useage Default","Simple Usage Wanning","Bottom Show","Plain Show","Side View", "Danger Side View", "on Tap", "on Swip Up", "Heavy Touch"]
var tableView: UITableView!
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
dataArray.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
var cell = tableView.dequeueReusableCell(withIdentifier: "CELL_ID", for: indexPath)
cell.textLabel?.text = dataArray[indexPath.row]
return cell
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
print("\(indexPath.row)")
switch indexPath.row {
case 0:
let banner = NotificationBanner(title: "Test Title", subtitle: "This is a test subtitle.", style: BannerStyle.info)
banner.delegate = self
banner.show()
case 1:
let banner = NotificationBanner(title: "Test Title", subtitle: "This is a test subtitle.", style: BannerStyle.warning)
banner.show()
case 2:
let banner = NotificationBanner(attributedTitle: NSAttributedString(string: "Test title"))
banner.show(bannerPosition: .bottom)
case 3:
let banner = NotificationBanner(attributedTitle: NSAttributedString(string: "Test title"))
let vc = ViewController()
banner.show(on: vc)
case 4:
let rightView = UIImageView(image: UIImage(named: "ef"))
let banner = NotificationBanner(title: "Side View", subtitle: "This is a side view with an image", rightView: rightView, style: BannerStyle.success)
banner.show()
case 5:
let rightView = UIImageView(image: UIImage(named: "ef"))
let banner = NotificationBanner(title: "Side View", subtitle: "This is a side view with an image", rightView: rightView, style: BannerStyle.danger)
banner.show()
case 6:
let banner = NotificationBanner(title: "Test Title", subtitle: "This is a test subtitle.", style: BannerStyle.info)
banner.show()
case 7:
let banner = NotificationBanner(title: "Test Title", subtitle: "This is a test subtitle.", style: BannerStyle.info)
banner.show()
case 8:
let banner = NotificationBanner(title: "Test Title", subtitle: "This is a test subtitle.", style: BannerStyle.info)
banner.show()
banner.haptic = .heavy
default:
break
}
}
private func initView(){
tableView = UITableView(frame: self.view.frame, style: .plain)
tableView.register(NSClassFromString("UITableViewCell"), forCellReuseIdentifier: "CELL_ID")
tableView.delegate = self
tableView.dataSource = self
self.view.addSubview(tableView)
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
initView()
}
}