1.不同的部分用 Protocol 和 extension 然文件可读性高
按钮点击事件
self.panGestureRecognizer = UIPanGestureRecognizer(target: self, action:#selector(panGestureRecognized(gestureRecognizer:)))
遵循协议
1. if let fromVC = fromViewController as? ADAlertViewAlertStyleTransitionProtocol {}
2. if fromViewController.conforms(to: ADAlertViewAlertStyleTransitionProtocol.self){}
open var shouldPresentInFullscreen: Bool { get }
//只读 也是 可以直接写get的
override var shouldPresentInFullscreen: Bool{
get{
return false
}
}
4.swift 单例
// #warning("这个地方不明白怎么写 先不管直接加到window上")
// 解决方式看其他优秀第三方库源码 跟着写 后面就是确认方案通用性 和原理
// @objc public class var shared: IQKeyboardManager {
// struct Static {
// //Singleton instance. Initializing keyboard manger.
// static let kbManager = IQKeyboardManager()
// }
//
// /** @return Returns the default singleton instance. */
// return Static.kbManager
// }
static func windowAlertViewControllerMapTable() -> NSMapTable<AnyObject, AnyObject> {
struct Static {
//Singleton instance. Initializing keyboard manger.
static let windowAlertViewControllerMapTables :NSMapTable = NSMapTable<AnyObject, AnyObject>(keyOptions: NSPointerFunctions.Options.strongMemory, valueOptions: NSPointerFunctions.Options.strongMemory)
}
return Static.windowAlertViewControllerMapTables
}
网友评论