iOS 修改導(dǎo)航欄按鈕的位置

  • UINavigationItem可以理解為Navigation Bar中的內(nèi)容,通過編輯UINavigationItem,我們可以使得在Navigation Bar中顯示想要的東西,比如設(shè)置標(biāo)題、添加按鈕等。

  • 當(dāng)我們使用系統(tǒng)原生控件時(shí),有時(shí)候不能滿足需求,因此需要自定義重寫,最近在項(xiàng)目中需要用導(dǎo)航欄的右側(cè)按鈕,先是直接用系統(tǒng)原生的控件。

  • 代碼如下:

    UIButton *settingButton = [UIButton buttonWithType:UIButtonTypeCustom];
    [settingButton setFrame:CGRectMake(0.0, 0.0, 44.0, 44.0)];
    [settingButton addTarget:self action:@selector(settingButtonOnClicked:) forControlEvents:UIControlEventTouchUpInside];
    [settingButton setImage:[UIImage imageNamed:@"ic_main_setting"] forState:UIControlStateNormal];
    UIBarButtonItem *rightItem = [[UIBarButtonItem alloc] initWithCustomView:settingButton];
  • 效果如圖:
    系統(tǒng)原生按鈕位置效果
  • 按鈕右側(cè)與屏幕右側(cè)有20 point的間距,按鈕圖標(biāo)居中顯示,需求來講該按鈕是偏左了。當(dāng)然你可以修改圖標(biāo)的位置也可以。

  • 代碼來修改是不是更靈活?當(dāng)然是了,如果再需求變更也不用重新切圖了。

  • 修改后代碼如下:

    UIButton *settingButton = [UIButton buttonWithType:UIButtonTypeCustom];
    
    //修改按鈕向右偏移10 point
    [settingButton setFrame:CGRectMake(10.0, 0.0, 44.0, 44.0)];
    [settingButton addTarget:self action:@selector(settingButtonOnClicked:) forControlEvents:UIControlEventTouchUpInside];
    [settingButton setImage:[UIImage imageNamed:@"ic_main_setting"] forState:UIControlStateNormal];
    
    //修改方法
    UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, 44.0, 44.0)];
    [view addSubview:settingButton];
    
    UIBarButtonItem *rightItem = [[UIBarButtonItem alloc] initWithCustomView:view];
  • 效果如圖:
修改后效果圖
  • 如果文章對(duì)你有幫助,請(qǐng)點(diǎn)下“喜歡”吧,感謝!
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容