UIBarButtonItem的一个分类,用户快速创建一个UIBarButtonItem
来源:互联网 发布:美国缩表中国楼市知乎 编辑:程序博客网 时间:2024/06/07 18:44
我们经常需要自定义UIBarButtonItem
,代码如下:
// 创建按钮 UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom]; [btn setImage:[UIImage imageNamed:@"nav_item_game_icon"] forState:UIControlStateNormal]; [btn setImage:[UIImage imageNamed:@"nav_item_game_click_icon"] forState:UIControlStateHighlighted]; [btn sizeToFit]; // 添加监听方法 [btn addTarget:self action:@selector(clickBtn) forControlEvents:UIControlEventTouchUpInside]; // 把UIButton包装成UIBarButtonItem 有会按钮点击范围过大的问题 // 解决这个问题 UIView *containView = [[UIView alloc] initWithFrame:btn.bounds]; [containView addSubview:btn]; // 设置导航栏左边按钮 self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:containView];
clickBtn
是点击要处理的方法。
如果要创建很多这样的UIBarButtonItem
,我们可以写一个分类(Category)
,代码如下:
//// UIBarButtonItem+Item.h#import <UIKit/UIKit.h>@interface UIBarButtonItem (Item)/** * 快速创建一个UIBarButtonItem * * @param image 普通状态下的图片 * @param highImage 高亮状态下的图片 * @param target 目标 * @param action 方法 */+ (instancetype) itemWithImage:(NSString *)image highImage:(NSString *)highImage target:(id)target action:(SEL)action;@end
//// UIBarButtonItem+Item.m#import "UIBarButtonItem+Item.h"@implementation UIBarButtonItem (Item)+ (instancetype) itemWithImage:(NSString *)image highImage:(NSString *)highImage target:(id)target action:(SEL)action{ // 创建UIButton UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; [button setBackgroundImage:[UIImage imageNamed:image] forState:UIControlStateNormal]; [button setBackgroundImage:[UIImage imageNamed:highImage] forState:UIControlStateHighlighted]; [button sizeToFit]; // 把UIButton包装成UIBarButtonItem 有会按钮点击范围过大的问题 // 解决这个问题 UIView *containView = [[UIView alloc] initWithFrame:button.bounds]; [containView addSubview:button]; // 监听 [button addTarget:target action:action forControlEvents:UIControlEventTouchUpInside]; // 返回 return [[self alloc] initWithCustomView:containView];}@end
可以对比一下另外一个同样功能的分类代码:
http://blog.csdn.net/github_26672553/article/details/51768433
使用
有了这个分类,现在我们创建UIBarButtonItem
就简单了:
// 设置导航栏左边按钮 self.navigationItem.leftBarButtonItem = [UIBarButtonItem itemWithImage:@"nav_item_game_icon" highImage:@"nav_item_game_click_icon" target:self action:@selector(clickBtn)];
0 0
- UIBarButtonItem的一个分类,用户快速创建一个UIBarButtonItem
- UIBarButtonItem的一个分类,用户快速创建一个UIBarButtonItem
- 快速创建一个UIBarButtonItem
- UIBarButtonItem的分类 (快速返回一个显示图片的UIBarButtonItem)
- Swift中创建一个UIBarButtonItem的分类
- UIBarbuttonItem的rigthItem的创建
- UIBarButtonItem
- UIBarButtonItem
- UIBarbuttonItem
- UIBarButtonItem
- UIBarButtonItem类目-返回一个有图片的导航栏按钮
- 自定义NavigationController(根据自定义UIBarButtonItem+ZZ)快速创建
- 自定义的UIBarButtonItem
- 设置UIBarButtonItem的属性
- 关于UIBarButtonItem的自定义
- 设置UIBarButtonItem的间距
- 百思学习笔记08-封装UIBarButtonItem的创建
- iOS-一行代码搞定复杂的UIBarButtonItem创建
- android保持屏幕常亮
- iOS 随身笔记之tableview 被选中后取消被选中的颜色 以及git客户端的下载
- 深入理解mysqldump原理 --single-transaction --lock-all-tables --master-data
- Android应用使用https
- 企业网站内部链接的形式分析
- UIBarButtonItem的一个分类,用户快速创建一个UIBarButtonItem
- 通过输入流的方式获取Request中的json参数
- 二叉树的镜像
- AtCoder Grand Contest 014做题记录
- 计蒜客_爬楼梯
- Inception 模型
- Maven项目下java.lang.ClassNotFoundException常规解决办法
- 回掉函数使用
- java反射--高级开发必须懂的