標籤:點擊 hup pre 方法 計算 ret protocol 點擊事件 nbsp
一、私人
private修飾的屬性、方法、成員變數只能在本類中使用(完全私人)
fileprivate修飾的可以在extension中使用
二、取類型
取一個類的類型,oc中是[類 class],swift中 類.self
1 // UITabBarButton系統的私人類,不能直接使用2 // if value.isKind(of: UITabBarButton.self){3 if value.isKind(of: NSClassFromString("UITabBarButton")!){
三、extension中可以聲明計算屬性,但不能聲明儲存屬性,和oc中一樣
1 // 對UIView的擴充 2 extension UIView{ 3 4 // 擴充計算屬性 5 var x:CGFloat{ 6 get{ 7 return frame.origin.x 8 } set{ 9 frame.origin.x = newValue10 }11 }12 }
四、按鈕添加點擊事件,oc用@,swift用#
button.addTarget(self, action: #selector(composeButtonAction), for: .touchUpInside)
五、代理
1 // 1、定理代理協議,要繼承NSObjectProtocol,否則無法使用弱引用 2 protocol WBTabBarDelegate:NSObjectProtocol { 3 func didSelectedComposeButton() 4 } 5 6 // 2、聲明代理對象 7 // 使用weak關鍵字,協議必須要繼承NSObjectProtocol 8 weak var wbDelegate:WBTabBarDelegate? 9 10 // 3、執行代理方法11 // MARK: - 點擊事件12 func composeButtonAction(){13 // 執行閉包14 composeButtonClosure?()15 16 // 使用代理對象調用代理方法17 // ?表示判斷前面的對象是否為nil,如果為nil那麼後面的代碼就不執行了18 wbDelegate?.didSelectedComposeButton()19 }20 21 // 4、設定代理對象22 let wbTabBar = WBTabBar()23 // 設定代理對象24 wbTabBar.wbDelegate = self25 26 // 5、分類中實現代理方法(swift中,如果聲明了代理而不去實現代理方法,會報錯)27 // 使用extension可以實現代理方法28 extension WBMainVC:WBTabBarDelegate{29 func didSelectedComposeButton() {30 print("我是代理對象調用過來的")31 }32 }
Swift使用注意