UIBarButtonItem点击范围过大

解决NavgationBar里面UIBarButtonItem点击范围过大的问题

问题

大家肯定都自定义过NavgationBar的返回按钮吧,按照下面方法设置的时候,会有点击范围过大的问题

    UIButton *leftButton = [UIButton buttonWithType:UIButtonTypeCustom];
    leftButton.frame = CGRectMake(0, 0, 30, 30);
    leftButton.backgroundColor = [UIColor redColor];
    [leftButton addTarget:self action:@selector(leftButtonAction) forControlEvents:UIControlEventTouchUpInside];
    
    UIBarButtonItem *leftItem = [[UIBarButtonItem alloc] initWithCustomView:leftButton];
    self.navigationItem.leftBarButtonItem = leftItem;
Paste_Image.png

解决

在Button外面包一层View就可以了,就会是正常的Button的点击范围了

    UIButton *leftButton = [UIButton buttonWithType:UIButtonTypeCustom];
    leftButton.frame = CGRectMake(0, 0, 30, 30);
    leftButton.backgroundColor = [UIColor redColor];
    [leftButton addTarget:self action:@selector(leftButtonAction) forControlEvents:UIControlEventTouchUpInside];
    
    UIView *menuButtonContainer = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 30, 30)];
    [menuButtonContainer addSubview:leftButton];
    
    UIBarButtonItem *leftItem = [[UIBarButtonItem alloc] initWithCustomView:menuButtonContainer];
    self.navigationItem.leftBarButtonItem = leftItem;

观察

尝试了好多应用,基本上都有这个现象,不是很细心的人根本发现不了,但是我开发的APP返回按钮给的图片太小了😂 效果十分明显的,找到解决方法以后,发现按钮太小了,button的frame是根据图片大小来的,不打算改成正常的了 (;¬_¬)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 2017.02.22 可以练习,每当这个时候,脑袋就犯困,我这脑袋真是神奇呀,一说让你做事情,你就犯困,你可不要太...
    Carden阅读 5,212评论 0 1
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 11,834评论 0 17
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,266评论 4 61
  • 第一章 《三英战吕布》 刘备:上海口音,精明 关羽:四川口音,爱拍马屁 张飞:东北口音,二货 诸葛亮:粗俗 吕布:...
    海盗老牛阅读 4,151评论 2 4
  • STL -> vector:vector 类似于 string 类,也是一种动态数组。在调用时可以在末尾附加或者中...
    染微言阅读 1,709评论 0 0