mac/iOS開發之storyboard與控制器連線多對一

macOS和iOS開發中使用Storyboard或xib搭建界面使程序員開發速度和效率有了極大的提高。相對於使用純代碼開發,不管是獨立開發和團隊開發,我的都比較傾向於使用storyboard,沒錯是storyboard不包含xib。曾經一直以爲純代碼開發高大上,當熟悉storyboard開發後,不管是在公司開發軟件仍是本身作獨立應用程序,感受徹底離不開它,開發效率成倍的提升,也特別節約時間。程序員

順便安利個資料羣,黑客攻防技術,面試寶典,開發進階都有,挺方便的QQ資料羣707641720面試

在開發中,macOS/iOS會常常用到storyboard與控制器連線,其中控件與控制器一對一連線很簡單,你們都知道,但如何使用Interface Builder Outlet / Action 多對一連線呢,好比多個UILabel共同使用一個IBOutlet對象,或者說多個UIButton公用一個IBAction響應事件?數組

如上圖所示,若是使用的是Swift語言開發,只需@IBOutlet與一個UILabel數組便可與多個UILabel相鏈接,因爲日常可能會須要獲取多個對象,但又不肯意一個一個連線,使用此種方法很是方便經過建立Model一併修改多個對象屬性的值。但在使用Objective-C語言開發中,需使用IBOutletCollection(id)與多個控件相連,以下圖所示:

OC連線中IBOutlet經常使用,但IBOutletCollection卻並不爲多數人所知,對於喜歡偷懶的程序員來講,搭配IBOutletCollection能夠事半功倍。

@property (strong, nonatomic) IBOutletCollection(id) NSArray<UILabel *> *labelArray;網絡

除了IBOutlet多對一之外,還有就是IBAction多對一。在應用程序開發中,IBAction多對一很是方便開發者將操做event差很少的控件寫在一個響應方法裏面。以前在開發一款mac播放器SBPlayer時,其中切換顏色的9個不一樣顏色按鈕點擊目的無非是給某以代理方法傳不一樣的NSColor,經過將9個按鈕的IBAction鏈接在同一個事件上,在代碼量很是少的狀況下,便實現了我的想要的功能。以下圖IBAction在Swift語言下的鏈接方法:ui

Objective-C中使用IBAction多對一和Swift語言相似。

對於正準備上手或已經上手storyboard的開發者來講,熟練使用IBAction和IBOutlet多對一鏈接相信會是如虎添翼!atom

順便安利個資料羣,黑客攻防技術,面試寶典,開發進階都有,挺方便的QQ資料707641720代理

圖文來源於網絡,若有侵權請聯繫小編刪除cdn

相關文章
相關標籤/搜索