封装UIBarButtonItem
2016-08-01 本文已影响41人
凡尘一笑
在我们开发项目时候,经常会遇到导航栏左右两边存在按钮,或者不存在按钮
今天给大家封装一下这个功能:截图给大家看,同时提供代码
第一步
第二步
Snip20160801_5.png第三步:在.m文件里面封装
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文件提供出方法
Snip20160801_6.png+ (UIBarButtonItem *)itemWithTarget:(id)target action:(SEL)action image:(NSString *)image highImage:(NSString *)highImage;
第五步
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给大家。
文/凡尘一笑(简书作者)
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。