Iphone 自定义导航项';s TouchUpInside事件在边界之外

Iphone 自定义导航项';s TouchUpInside事件在边界之外,iphone,ios,uinavigationbar,touch-event,Iphone,Ios,Uinavigationbar,Touch Event,我正在使用一个自定义的UIBarButtonItem来替换leftBarButtonItem,但是当我按下按钮外部时,在按钮大约20像素的范围内,它会检测到它就是被按下的按钮 这是我的密码: - (void)changeNavbarButtons { UIButton *backButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 44, 44)]; [backButton setBackgroundImage:[UI

我正在使用一个自定义的UIBarButtonItem来替换leftBarButtonItem,但是当我按下按钮外部时,在按钮大约20像素的范围内,它会检测到它就是被按下的按钮

这是我的密码:

- (void)changeNavbarButtons
{
    UIButton *backButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 44, 44)];
    [backButton setBackgroundImage:[UIImage imageNamed:@"navbarBack.png"] forState:UIControlStateNormal];
    [backButton addTarget:self action:@selector(popViewController) forControlEvents:UIControlEventTouchUpInside];

    UIBarButtonItem *backItem = [[UIBarButtonItem alloc] initWithCustomView:backButton];

    UIBarButtonItem *negativeSpacer = [[UIBarButtonItem alloc]
                                       initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace
                                       target:nil action:nil];
    negativeSpacer.width = -5;

    self.navigationItem.leftBarButtonItems = [NSArray
                                              arrayWithObjects:negativeSpacer, backItem, nil];    self.navigationItem.hidesBackButton = YES;
}
负片指针将按钮向左移动5个像素


这是什么原因造成的?

这是
UINavigationBarButton
项的默认行为。
这是关于易用性的。顶部的导航栏往往意味着人们点击的位置比你预期的要低。始终保持该间隙,或者具有足够大的命中区域,以便用户将手指朝“导航栏下方”项目的中间戳,以避免死区

这是
UINavigationBarButton
项的默认行为。
这是关于易用性的。顶部的导航栏往往意味着人们点击的位置比你预期的要低。始终保持该间隙,或者具有足够大的命中区域,以便用户将手指朝“导航栏下方”项目的中间戳,以避免死区

这不是一个错误,这是这个按钮的默认行为。哦,我从来没有注意到。谢谢ShannogaThis不是一个bug,它是这个按钮的默认行为。哦,我从来没有注意到。谢谢Shannoga