原文链接:http://www.jianshu.com/p/5c74dfc94deb

UI界面的完美是一个好的产品的前提条件,最近开发在设置导航上左侧右侧的barbuttonItem 的时候由于设计想要距离左右有10的边距但是在更改customview的button的frame始终不起作用后来看下了关navigationItem的东西,从5.0以后系统多了两个属性,leftBarButtonItems和rightBarButtonItems两个数组类型的属性,也就是可以添加多个导航按钮,注意下api中提到的两点重要的:

  • leftBarButtonItems are placed in the navigation bar left to right with the first
    item in the list at the left outside edge and left aligned.
  • rightBarButtonItems are placed right to left with the first item in the list at
    the right outside edge and right aligned.

    左侧的是从左到右边按照数组里的次序、右侧是从右向左 也就是说数组中的第一个放最右边,左侧的数组中的是第一个放最左边

    UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
    btn.frame= CGRectMake(0, 0, 40, 44);  
    [btn addTarget:self action:@selector(buttonClicked) forControlEvents:UIControlEventTouchUpInside];  
    UIBarButtonItem *btn_right = [[UIBarButtonItem alloc] initWithCustomView:btn];  
    UIBarButtonItem *negativeSpacer = [[UIBarButtonItem alloc]   initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace   target:nil action:nil];  
    width为负数时,相当于btn向右移动width数值个像素,由于按钮本身和  边界间距为5pix,所以width设为-5时,间距正好调整为0;width为正数 时,正好相反,相当于往左移动width数值个像素
    negativeSpacer.width = -5;   
    self.navigationItem.rightBarButtonItems = [NSArray arrayWithObjects:negativeSpacer, btn_right, nil];
    补充:导航控制器两侧的按钮颜色 self.navigationController.navigationBar.tintColor = [UIColorwhiteColor];** 原文链接:http://www.jianshu.com/p/5c74dfc94debUI界面的完美是一个好的产品的前提条件,最近开发在设置导航上左侧右侧的barbuttonItem 的时候由于设计想要距离左右有10的边距但是在更改customview的button的frame始终不起作用后来看下了关navigationItem的东西,从5.0以后系统多了两个属性,leftBarBu
    _btn.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft; _btn.titleEdgeInsets = UIEdgeInsetsMake(0, 10.0, 0, 不可直接调整titleEdgedInsets,直接调整的话会是不准的,要先将 按钮 内容左对齐或其他方式对齐,再进行边距
    相信很多同学都知道在 iOS 7之后调整 导航 两侧 按钮 距离 左右 间距,其实就是在 左右 bar Button Item的数组中添加一个宽度为负的占位item。 - (void)addLeftBar Button Item:(UIBar Button Item *)leftBar Button Item UIBar Button Item *space = [[UIBar Button Item alloc] ...
    先上代码UI Button *settingBtn = [Utils creatCustom Button WithFrame:CGRectMake(0, 0, 60, 40) btnTitle:@"设置" btnFontSize:14 titleColor:[UIColor blackColor]]; [settingBtn addTarget:self action:@selector(clickTh
    iOS 11 导航 按钮 位置问题的解决此文是 iOS 11在beta的时候写的,当时主要是为了解决问题,并没有想太多的优化,后期发现其代码量比较大,且会出现一些问题,比如多个 按钮 的设置,比如约束的丢失等,现在换了新的思路去实现新的解决方案 iOS 11 导航 按钮 位置问题的解决——新 http://blog.csdn.net/spicyShrimp/article/details/78201042虽然现
    按钮 垂直对齐方式 @property(nonatomic) UIControlContentVerticalAlignment contentVerticalAlignment; typedef NS_ENUM(NSInteger, UIControlContentVerticalAlignment) { UIControlContentVerticalAlignmentCenter ...
    UI Button 结构, ImageView+ Lable 设置内边距EdgeInsets 以后会 压缩 在宽度,和前端中设置div内边距一样 back Button .titleEdgeInsets=UIEdgeInsetsMake(10, 0, 0, 0); // 上边内边距10 back Button .imageEdgeInsets=UIEdgeInsetsMake(0, 0, 10, 0) back Button .contentEdgeInsets = U...