今天在寫代碼的時候,發現UIBarButtonItem的一些小知識點沒有掌握,在這邊進行記錄
UIBarButtonItem的應用場景
當我們需要設置控制器的導航欄內容的時候一般都會涉及到UIBarButtonItem,navigateItem中有leftBarButtonItem
和rightBarButtonItem
兩個屬性,分別用來設置左右兩側的導航條內容,通常情況下可以為其設置文字和圖片,響應點擊的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進行設置了