今天发现如果直接在UINavigationItem
里面添加一个自定义button的时候,这个button的有效点击范围将会很大,接近UINavigationBar
的titleView
。
有时候我们不想要这种特性。可以这样做:
先将你的UIButton
添加到一个同样大小的UIView
中,然后再将这个UIView
添加到leftBarButtonItem
里。
代码如下:
UIImage *backImg = [UIImage imageNamed:imageName];
UIButton *backBtn = [[UIButton alloc] initWithFrame:CGRectMake(0.f, 0.f, backImg.size.width, backImg.size.height)];
[backBtn setImage:backImg forState:UIControlStateNormal];
UIView *backBtnView = [[UIView alloc] initWithFrame:backBtn.bounds];
backBtnView.bounds = CGRectOffset(backBtnView.bounds, -6, 0);
[backBtnView addSubview:backBtn];
UIBarButtonItem *backBarBtn = [[UIBarButtonItem alloc] initWithCustomView:backBtnView];
self.navigationItem.leftBarButtonItem = backBarBtn;