1. 普通的自定義導航按鈕
1> 只有返回圖標的
UIButton* leftBtn = [UIButtonbuttonWithType:UIButtonTypeSystem];
leftBtn.frame=CGRectMake(0,0,12,18);
[leftBtnsetBackgroundImage:[UIImageimageNamed:@"icon_back"]forState:UIControlStateNormal];
[leftBtnaddTarget:selfaction:@selector(leftBarBtnClicked)forControlEvents:UIControlEventTouchUpInside];
self.navigationItem.leftBarButtonItem= [[UIBarButtonItemalloc]initWithCustomView:leftBtn];
2> 有圖標 有文字
UIButton* leftBtn = [UIButtonbuttonWithType:UIButtonTypeSystem];
leftBtn.frame=CGRectMake(0,0,90,25);
[leftBtnsetImage:[UIImageimageNamed:@"icon_back"]forState:UIControlStateNormal];
[leftBtnsetTitle:@"添加好友"forState:UIControlStateNormal];
[leftBtnsetTitleColor:[UIColorcolorWithRed:22/255.0green:88/255.0blue:224/255.0alpha:1]forState:UIControlStateNormal];
leftBtn.titleLabel.font= [UIFontsystemFontOfSize:15];
[leftBtnaddTarget:selfaction:@selector(leftBarBtnClicked)forControlEvents:UIControlEventTouchUpInside];
self.navigationItem.leftBarButtonItem= [[UIBarButtonItemalloc]initWithCustomView:leftBtn];
3> 有的時候圖標和文字之間的距離會顯的太近 ,或者這個自定義的返回bar會距離左邊太近
對于圖標和文字距離太近,其實很簡單 : [leftBtnsetTitle:@" ? 添加好友"forState:UIControlStateNormal];
在文字之前加幾個空格 ,看你滿意嘍?
對于整個返回按鈕距離左邊太近 ,我們可以這么寫
//自定義導航左側按鈕
UIButton* leftBtn = [UIButtonbuttonWithType:UIButtonTypeSystem];
leftBtn.frame=CGRectMake(0,0,90,25);
[leftBtnsetImage:[UIImageimageNamed:@"icon_back"]forState:UIControlStateNormal];
[leftBtnsetTitle:@"添加好友"forState:UIControlStateNormal];
[leftBtnsetTitleColor:[UIColorcolorWithRed:22/255.0green:88/255.0blue:224/255.0alpha:1]forState:UIControlStateNormal];
leftBtn.titleLabel.font= [UIFontsystemFontOfSize:15];
[leftBtnaddTarget:selfaction:@selector(leftBarBtnClicked)forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem*leftBarButtonItem = [[UIBarButtonItemalloc]initWithCustomView:leftBtn];
//解決按鈕不靠左的問題.
UIBarButtonItem*nagetiveSpacer = [[UIBarButtonItemalloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpacetarget:nilaction:nil];
nagetiveSpacer.width= -15;//這個值可以根據自己需要自己調整
self.navigationItem.leftBarButtonItems=@[nagetiveSpacer, leftBarButtonItem];
就這么多 over。