先上代碼
UIButton *settingBtn = [Utils creatCustomButtonWithFrame:CGRectMake(0, 0, 60, 40) btnTitle:@"設置" btnFontSize:14 titleColor:[UIColor blackColor]]; [settingBtn addTarget:self action:@selector(clickTheSettingBtn) forControlEvents:UIControlEventTouchUpInside]; UIBarButtonItem *rightBar = [[UIBarButtonItem alloc]initWithCustomView:settingBtn]; self.navigationItem.rightBarButtonItem = rightBar;
效果為
若想調節該按鈕位置,設置
settingBtn.titleLabel.textAlignment = NSTextAlignmentRight;
這樣是沒效果的。應利用UIBarButtonSystemItemFixedSpace格式,rightbar設為數組,進行填充。
UIButton *settingBtn = [SHUtils creatCustomButtonWithFrame:CGRectMake(0, 0, 60, 40) btnTitle:@"設置" btnFontSize:14 titleColor:[UIColor blackColor]]; [settingBtn addTarget:self action:@selector(clickTheSettingBtn) forControlEvents:UIControlEventTouchUpInside]; UIBarButtonItem *rightBar = [[UIBarButtonItem alloc]initWithCustomView:settingBtn]; UIBarButtonItem *negativeSpacer = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil]; negativeSpacer.width = -20; self.navigationItem.rightBarButtonItems = [NSArray arrayWithObjects:negativeSpacer,rightBar,nil];
效果為