代码改变世界

iOSUIButton类的扩展,创建一个UIBarButtonItem的button

2014-09-20 13:08  苑哲雨  阅读(1572)  评论(0编辑  收藏  举报

.h文件中:

#import <UIKit/UIKit.h>

@interface UIBarButtonItem (YLY)
/**
 *  快速创建一个item对象(包装一个button)
 *
 *  @param image   按钮图片
 *  @param hilight 高亮图
 *  @param target  按钮的监听器
 *  @param action  按钮的件提起的回调方法
 *
 *  @return 创建的item对象
 */
+(UIBarButtonItem *)itemWithImage:(NSString *)image higlightedImage:(NSString *)hilight target:(id)target action:(SEL)action;
@end

.m文件中:

#import "UIBarButtonItem+YLY.h"

@implementation UIBarButtonItem (YLY)
+(UIBarButtonItem *)itemWithImage:(NSString *)image higlightedImage:(NSString *)hilight target:(id)target action:(SEL)action
{
    UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
    UIImage *normal  = [UIImage imageWithNamed:image];
    [btn setBackgroundImage:normal forState:UIControlStateNormal];
    [btn setBackgroundImage:[UIImage imageWithNamed:hilight]forState:UIControlStateHighlighted];
    btn.bounds = CGRectMake(0, 0, normal.size.width, normal.size.height);
    [btn addTarget:target action:action forControlEvents:UIControlEventTouchUpInside];
    return [[UIBarButtonItem alloc] initWithCustomView:btn];
}
@end

使用:

 //菜单
    self.navigationItem.rightBarButtonItem = [UIBarButtonItem itemWithImage:@"navigationbar_pop" higlightedImage:@"navigationbar_pop_highlighted" target:self action:@selector(pop)];