封装UIBarButtonItem

在我们开发项目时候,经常会遇到导航栏左右两边存在按钮,或者不存在按钮
今天给大家封装一下这个功能:截图给大家看,同时提供代码
第一步

封装UIBarButtonItem_第1张图片
Snip20160801_4.png

第二步

封装UIBarButtonItem_第2张图片
Snip20160801_5.png

第三步:在.m文件里面封装

封装UIBarButtonItem_第3张图片
Snip20160801_7.png
/**
 *  创建一个item
 *  
 *  @param target    点击item后调用哪个对象的方法
 *  @param action    点击item后调用target的哪个方法
 *  @param image     图片
 *  @param highImage 高亮的图片
 *
 *  @return 创建完的item
 */
+ (UIBarButtonItem *)itemWithTarget:(id)target action:(SEL)action image:(NSString *)image highImage:(NSString *)highImage
{
    UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
    [btn addTarget:target action:action forControlEvents:UIControlEventTouchUpInside];
    // 设置图片
    [btn setBackgroundImage:[UIImage imageNamed:image] forState:UIControlStateNormal];
    [btn setBackgroundImage:[UIImage imageNamed:highImage] forState:UIControlStateHighlighted];
    // 设置尺寸
    btn.size = btn.currentBackgroundImage.size;
    return [[UIBarButtonItem alloc] initWithCustomView:btn];
}

第四步:在.h文件提供出方法

封装UIBarButtonItem_第4张图片
Snip20160801_6.png
+ (UIBarButtonItem *)itemWithTarget:(id)target action:(SEL)action image:(NSString *)image highImage:(NSString *)highImage;

第五步

封装UIBarButtonItem_第5张图片
Snip20160801_8.png
 self.navigationItem.leftBarButtonItem = [UIBarButtonItem itemWithTarget:self action:@selector(sweep) image:@"navigationbar_pop" highImage:@"navigationbar_pop"];
    self.navigationItem.rightBarButtonItem = [UIBarButtonItem itemWithTarget:self action:@selector(message) image:@"navigationbar_friendsearch" highImage:@"navigationbar_friendsearch"];
注意:我这里把高亮图片和默认图片设置为了同一张图片,如果公司需求没有要求设置高亮,你就和我一样设置同一张图片就可,如果你要设置为空的话,会报一个警告,不过没有关系,我们可以给他设置一个空格@“ ”就把图片设置为@+ “ + 空格 +”就可以了

后面有个哥们给了个建议说封装一下文字,其实如果左右两边是文字的话使用系统自带的就可以了.这里我就贴一小段代码,自己看一下哈

    UIBarButtonItem *item = [UIBarButtonItem appearance];
    NSMutableDictionary *dict = [NSMutableDictionary dictionary];
    dict[NSForegroundColorAttributeName] = [UIColor redColor];
    [item setTitleTextAttributes:dict forState:UIControlStateNormal];  
    self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"哈哈" style:UIBarButtonItemStylePlain target:self action:@selector(click)];
}

Dome:https://github.com/LYWGod/UIBarButtonItemExtension
备注:

如果有不足或者错误的地方还望各位读者批评指正,可以评论留言,笔者收到后第一时间回复。

QQ/微信:2366889552 /lan2018yingwei。

号:凡尘一笑:[]

http://www.jianshu.com/users/0158007b8d17/latest_articles

感谢各位观众老爷的阅读,如果觉得笔者写的还凑合,可以关注或收藏一下,不定期分享一些好玩的实用的demo给大家。

文/凡尘一笑(作者)

著作权归作者所有,转载请联系作者获得授权,并标注“作者”。

你可能感兴趣的:(封装UIBarButtonItem)