博客> iOS封装自定义的导航栏按钮
iOS封装自定义的导航栏按钮
2017-12-14 10:56 评论:0 阅读:305 憧憬的活着
ios 自定义 导航栏按钮

有时候系统的导航栏按钮无法实现我们想要的图片,可以通过自己继承进行封装

建立一个JSUIBarButtonItem继承UIBarButtonItem,在m文件初始化方法,并且写上相应的触发事件

  • (instancetype)initWithImage:(UIImage )image addTarget:(id)target action:(SEL)action { self = [super init]; if (self) { [self setBaseViewImage:(UIImage )image AddTarget:target action:action]; } return self; }

在初始化时实现方法,创建按钮,然后初始化 self.customView,再添加按钮,最后按钮执行触发事件

  • (void)setBaseViewImage:(UIImage )image AddTarget:(id)target action:(SEL)action { CGRect rect = CGRectMake(0, 0, 30, 30); UIButton rightButton = [UIButton buttonWithType:UIButtonTypeCustom]; [rightButton setBackgroundImage:image forState:UIControlStateNormal]; rightButton.frame = rect; self.customView = [[UIView alloc] initWithFrame:rect]; [self.customView addSubview:rightButton]; [rightButton addTarget:target action:action forControlEvents:UIControlEventTouchUpInside]; }

在vc中使用空间

  • (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. self.view.backgroundColor = [UIColor whiteColor]; self.navigationItem.rightBarButtonItem = [[JSUIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"shopcat12"] addTarget:self action:@selector(naviAction)]; }

  • (void)naviAction { NSLog(@"click me"); }

最终效果图片如下 Simulator Screen Shot 2016年9月6日 10.01.26.png

收藏
0
sina weixin mail 回到顶部