在很多App設計中導覽列左側/右側都會被設計成表徵圖。
我們通常是採用建立一個按鈕的方式:
// 建立按鈕 UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom]; [btn setImage:[UIImage imageNamed:@"nav_item_game_icon"] forState:UIControlStateNormal]; [btn setImage:[UIImage imageNamed:@"nav_item_game_click_icon"] forState:UIControlStateHighlighted]; [btn sizeToFit]; // 設定導覽列左邊按鈕 self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:btn];
這樣就給導覽列左側設定了一個表徵圖按鈕。
但是也伴隨著一個問題:
這個按鈕的可點擊範圍是不是也忒大了。
解決:給UIButton封裝一個UIView
// 建立按鈕 UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom]; [btn setImage:[UIImage imageNamed:@"nav_item_game_icon"] forState:UIControlStateNormal]; [btn setImage:[UIImage imageNamed:@"nav_item_game_click_icon"] forState:UIControlStateHighlighted]; [btn sizeToFit]; // 把UIButton封裝成UIBarButtonItem 有會按鈕點擊範圍過大的問題 // 解決這個問題 UIView *containView = [[UIView alloc] initWithFrame:btn.bounds]; [containView addSubview:btn]; // 設定導覽列左邊按鈕 self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:containView];