sx_setLeftBarButtonItem:leftBarButtonItem]; } } -(void)sx_setRightBarButtonItem:(UIBarButtonItem *)rightBarButtonItem { if (rightBarButtonItem.customView) { if ([[[UIDevice currentDevice] systemVersion] floatValue ] >= 11) { UIView *customView = rightBarButtonItem.customView; BarView *barView sx_setRightBarButtonItem:nil]; [self setRightBarButtonItems:@[[self fixedSpaceWithWidth:-20], rightBarButtonItem } }else { [self setRightBarButtonItems:nil]; [self sx_setRightBarButtonItem:rightBarButtonItem
systemFontOfSize:16], NSForegroundColorAttributeName:[UIColor whiteColor]}]; // 右侧文字 self.navigationItem.rightBarButtonItem " style:UIBarButtonItemStylePlain target:self action:@selector(search:)]; [self.navigationItem.rightBarButtonItem setTintColor:[UIColor whiteColor]]; [self.navigationItem.rightBarButtonItem setTitleTextAttributes
那么我们可以有第二种解决方式,修改原来的navigationbar,其实就是改一下leftBarButtonItem或者rightBarButtonItem在navigationbar上面的位置:修改UIBarButtonItem setLeftBarButtonItem:_leftBarButtonItem animated:NO]; } } - (void)setRightBarButtonItem:(UIBarButtonItem *)_rightBarButtonItem target:nil action:nil]; negativeSeperator.width = -12;//此处修改到边界的距离,请自行测试 if (_rightBarButtonItem ) { [self setRightBarButtonItems:@[negativeSeperator, _rightBarButtonItem]]; @[negativeSeperator]]; } } else { [self setRightBarButtonItem:_rightBarButtonItem
1.0 constant:margin]]; break; } } } } 在创建self.navigationItem.rightBarButtonItem { if (iOS11_OR_LATER) { [self mk_setRightBarButtonItem:rightBarButtonItem]; } else if (iOS7_OR_LATER) { if (rightBarButtonItem && (rightBarButtonItem.customView ! =nil || rightBarButtonItem.image ! ]; } } else { [self mk_setRightBarButtonItem:rightBarButtonItem]; } } - (void
1.0 constant:margin]]; break; } } } } 在创建self.navigationItem.rightBarButtonItem { if (iOS11_OR_LATER) { [self mk_setRightBarButtonItem:rightBarButtonItem]; } else if (iOS7_OR_LATER) { if (rightBarButtonItem && (rightBarButtonItem.customView ! =nil || rightBarButtonItem.image ! ]; } } else { [self mk_setRightBarButtonItem:rightBarButtonItem]; } } - (void
override func viewDidLoad() { super.viewDidLoad() navigationItem.rightBarButtonItem print(error.localizedDescription) } else { self.navigationItem.rightBarButtonItem 停止录制 recorder.stopRecording { [unowned self] preview, _ in self.navigationItem.rightBarButtonItem
前言 例子:调整BarButtonItem按钮和titleView的间距 1、原理:titleview的起点位置和尺寸依赖于leftBarButtonItem和rightBarButtonItem的位置 2、设置titleview之前,先初始化leftBarButtonItem和rightBarButtonItem的位置,然后根据leftBarButtonItem和rightBarButtonItem的位置来使 negativeSpacer,nil]; 1.2 调整左边按钮和titleView的间距 ---- // 经过尝试,发现titleview的起点位置和尺寸依赖于leftBarButtonItem和rightBarButtonItem self.navigationItem.titleView = centerView; // 设置titleview之前,先初始化leftBarButtonItem和rightBarButtonItem 的位置,然后根据leftBarButtonItem和rightBarButtonItem的位置来使titleview居中。
pop" style:UIBarButtonItemStyleDone target:self action:@selector(popView:)]; self.navigationItem.rightBarButtonItem pop.permittedArrowDirections = UIPopoverArrowDirectionAny;//弹出的方向 pop.barButtonItem = self.navigationItem.rightBarButtonItem
kunnan_forceEnableInteractivePopGestureRecognizer { return YES; } 在这里插入图片描述 III、自定义导航条的rightBarButtonItem 自定义导航条的rightBarButtonItem,采用initWithCustomView:rightBtn设置rightBtn.frame,让文字更大,更容易点击 https://kunnan.blog.csdn.net rightButtonItem = [[UIBarButtonItem alloc]initWithCustomView:rightBtn]; self.navigationItem.rightBarButtonItem = rightButtonItem; self.navigationItem.rightBarButtonItem.customView.hidden = YES; } see
navigationItem.rightBarButtonItem = searchItem } func addSearchBar() { if hasBackBarItem navigationItem.rightBarButtonItem = searchItem searchBar.resignFirstResponder() //取消点击后重新加载数据
一个UINavigationController只会有一个UIBackButtonContentView,但是可以有多个leftBarButtonItem、rightBarButtonItem(leftBarButtonItem 、rightBarButtonItem就在下图所示的UIButtonBarStackView图层下),其中backButton与leftBarButtonItem之间的关系和区别在后面我们会讲到。 2.1 导航条上的按钮三兄弟 在前面我们也提到了,在导航栏上有左右按钮和返回按钮,官方称谓是backBarButtonItem、leftBarButtonItem、rightBarButtonItem 首先,我们来说一下leftBarButtonItem、rightBarButtonItem,这两个是孪生兄弟,唯一的区别就是在导航条上的位置,顾名思义,leftBarButtonItem在导航条左侧,rightBarButtonItem 此外,还有一点需要我们注意的是navigationBar上的leftBarButtonItem、rightBarButtonItem可以有多个,用法也非常简单,常见用法就是一般在 - (void)viewDidLoad
barButtonSystemItem: .add, target: self, action: #selector(barButtonItemClicked)) navigationItem.rightBarButtonItem ") } // iOS26新增,返回触发的UIBarButtonItem return self.navigationItem.rightBarButtonItem
viewDidLoad() { super.viewDidLoad() self.view.backgroundColor = UIColor.brown self.navigationItem.rightBarButtonItem
*title; //左上角的视图 @property(nonatomic,retain) UIBarButtonItem *leftBarButtonItem; UIBarButtonItem *rightBarButtonItem //右上角的视图 @property(nonatomic,retain) UIBarButtonItem *rightBarButtonItem; 清空导航条背景图片 // 清空导航条背景图片 [UIImage alloc] init]]; iOS7之后的导航栏 iOS7之后导航条上德图片默认会渲染成蓝色 代码改变图片原始颜色 获得导航栏上图片 self.navicationItem.rightBarButtonItem.image
(void)viewDidLoad { [super viewDidLoad]; self.title=@"City Guide"; self.navigationItem.rightBarButtonItem self.editButtonItem; self.tableView.allowsSelectionDuringEditing=YES; //self.navigationItem.rightBarButtonItem
navRightButton.badgeBGColor = UIColor.redColor(); navRightButton.badgeTextColor = UIColor.whiteColor(); self.navigationItem.rightBarButtonItem = navRightButton; 设置值 self.navigationItem.rightBarButtonItem!. badgeValue = "2"; 设置隐藏 self.navigationItem.rightBarButtonItem!.
fileURLWithPath:[[NSBundle mainBundle] bundlePath]]]; } return _webView; } 3.2 自定义导航条的rightBarButtonItem 自定义导航条的rightBarButtonItem,采用initWithCustomView:rightBtn设置rightBtn.frame,让文字更大,更容易点击 https://kunnan.blog.csdn.net rightButtonItem = [[UIBarButtonItem alloc]initWithCustomView:rightBtn]; self.navigationItem.rightBarButtonItem = rightButtonItem; self.navigationItem.rightBarButtonItem.customView.hidden = YES; } see
协议方法 : - (void) textViewDidBeginEditing:(UITextView *)textView{ //开始编辑是显示导航条按钮 self.navItem.rightBarButtonItem done; } - (void) textViewDidEndEditing:(UITextView *)textView{ //结束编辑是不现实导航条按钮 self.navItem.rightBarButtonItem done; } - (void) textViewDidEndEditing:(UITextView *)textView{ //结束编辑是不现实导航条按钮 self.navItem.rightBarButtonItem done; } - (void) textViewDidEndEditing:(UITextView *)textView{ //结束编辑是不现实导航条按钮 self.navItem.rightBarButtonItem done; } - (void) textViewDidEndEditing:(UITextView *)textView{ //结束编辑是不现实导航条按钮 self.navItem.rightBarButtonItem
10:6; self.navigationItem.rightBarButtonItem.imageInsets = UIEdgeInsetsMake(0,-inset,0,inset); 2.填充方式
(_ animated: Bool) { super.viewDidAppear(animated) // 放到导航条 navigationItem.rightBarButtonItem