关于UINavigationBar的UIBarButtonItem按钮点击范围过大的问题

今天发现如果直接在UINavigationItem里面添加一个自定义button的时候,这个button的有效点击范围将会很大,接近UINavigationBartitleView

有时候我们不想要这种特性。可以这样做:
先将你的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;

你可能感兴趣的:(关于UINavigationBar的UIBarButtonItem按钮点击范围过大的问题)