gpt4 book ai didi

iphone - 自定义 NavigationItem 的 TouchUpInside 事件在边界外

转载 作者:行者123 更新时间:2023-11-29 13:07:55 25 4
gpt4 key购买 nike

我正在使用自定义 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;
}

negativeSpacer是将按钮向左移动5个像素。

是什么原因造成的?

最佳答案

这是 UINavigationBarButton 项的默认行为。这是关于易用性。顶部的导航栏往往意味着人们点击的位置比您预期的要低。始终将那个间隙留在那里,或者有一个足够大的点击区域,用户将手指刺向“导航栏下方”项目的中间将避开死区。

关于iphone - 自定义 NavigationItem 的 TouchUpInside 事件在边界外,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18163469/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com