UIBarButtonItem的相關知識點

b10l07發表於2017-05-11

今天在寫程式碼的時候,發現UIBarButtonItem的一些小知識點沒有掌握,在這邊進行記錄

UIBarButtonItem的應用場景

當我們需要設定控制器的導航欄內容的時候一般都會涉及到UIBarButtonItem,navigateItem中有leftBarButtonItemrightBarButtonItem兩個屬性,分別用來設定左右兩側的導航條內容,通常情況下可以為其設定文字和圖片,響應點選的target和響應點選的函式等內容,當然也可以使用一個自定義的view作為其內容,使用self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc]initWithCustomView:lview];進行設定。

自定義View的小坑

使用自定義view設定UIBarButtonItem的時候,我發現了一個小坑,就是點選的範圍被擴大了,這樣的結果就是當使用者不小心點選按鈕旁邊的時候也會觸發點選的效果,使用者體驗就不好了,如何解決這樣的問題呢?

解決的方案就是使用一個view包裹自定義的button作為一個整體設定為UIBarButtonItem的內容,這樣就可以達到我們理想的效果

一些好的習慣

一般情況下,我們需要設定左右兩邊的BarButtonItem,這樣的情況下,為系統的UIBarButtonItem設定一個分類,建立一個類方法是非常合理的做法
如:

+ (instancetype)buttonWithImage:(UIImage*)image highlightedImage:(UIImage*)highlightedImage target:(nullable id)target action:(nullable SEL)action;

這樣就可以快速的對左右兩邊的UIBarButtonItem進行設定了

相關文章