导航条按钮的间距问题

需求:自定义导航条右边按钮的间距

问题:系统导航条rightBarButtonItem默认与右边有30*UI_RATE的间距(UI_RATE是适配比率)

解决如下:封装一个方法

+ (NSArray *)initRightBarButtonItemsWithTarget:(id)target action:(SEL)action title:(NSString *)title font:(CGFloat)font titleColorNormal:(UIColor *)titleColorNormal titleColorHightLight:(UIColor *)titleColorHightLight
{
    UIButton * button = [UIButton buttonWithType:UIButtonTypeCustom];
    [button addTarget:target action:action forControlEvents:UIControlEventTouchUpInside];
    [button setTitle:title forState:UIControlStateNormal];
    
    button.titleLabel.font = [UIFont systemFontOfSize:fontSize];
    
    if(titleColorNormal){
      [button setTitleColor:titleColorNormal forState:UIControlStateNormal];
    }
    if(titleColorHightLight){
      [button setTitleColor:titleColorHightLight forState:UIControlStateNormal];
    }
    //设置按钮的frame
     /*
      *[NSString calculateTextWidth:title font:[UIFont systemFontOfSize:fontSize]]是计算文章的宽度
      *48*UI_RATE是自定义的间距,因为文字是居中的,所以左右间距是24*UI_RATE
      */
    [button setFrame:CGRectMake(0, 0,48 * UI_RATE + [NSString calculateTextWidth:title font:[UIFont systemFontOfSize:fontSize]], 40)];
    
    //添加一个占位UIBarButtonItem来代替那30 * UI_RATE的留白间距
    UIBarButtonItem * negativeSpacer = [[ UIBarButtonItem alloc ] initWithBarButtonSystemItem : UIBarButtonSystemItemFixedSpace target:nil action:nil];
    //设置width为-30 * UI_RATE相当于往右偏移-30 * UI_RATE
    negativeSpacer.width = -30 * UI_RATE;
    UIBarButtonItem * buttonItem = [[UIBarButtonItem alloc] initWithCustomView:button];
    //顺序不能换(rightBarButtonItems界面的展示是从最右边从第一个依次向左摆放)
    return @[negativeSpacer,buttonItem];
}

self.navigationItem.rightBarButtonItems = [UIBarButtonItem initRightBarButtonItemsWithTarget:self action:@selector(sureAction:) title:@"确定" font:0 titleColorNormal:nil titleColorHightLight:nil];

导航条左边leftBarButtonItems同理:leftBarButtonItems界面的展示是从最左边边从第一个依次向右摆放

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,593评论 25 709
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,295评论 4 61
  • 超强大脑训练法 原理篇 超强大脑训练法,是作者在日常生活工作中,根据自身所需要,经过不懈努力对自身的观察入微与付出...
    我要征服阅读 892评论 0 0
  • 用户体验 一个好的产品从始至终都是看重用户体验的,仅仅了解客户需求提供产品功能,但没有以用户身份来了解产品的产品是...
    七喜少爷阅读 146评论 0 0
  • 我是日记星球177号星宝宝熙怡(yaya),我正在参加日记星球21天蜕变之旅,这是我的第35篇原创日记。 我是家庭...
    妙丫丫POI阅读 270评论 3 5