您的位置:首页 > 移动开发 > IOS开发

iOS导航栏自定义按钮导致点击范围过大的问题

2017-05-09 16:50 337 查看
在很多App设计中导航栏左侧/右侧都会被设计成图标。

我们通常是采用创建一个按钮的方式:

// 创建按钮
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
[btn setImage:[UIImage imageNamed:@"nav_item_game_icon"] forState:UIControlStateNormal];
[btn setImage:[UIImage imageNamed:@"nav_item_game_click_icon"] forState:UIControlStateHighlighted];
[btn sizeToFit];

// 设置导航栏左边按钮
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:btn];


这样就给导航栏左侧设置了一个图标按钮。

但是也伴随着一个问题:



这个按钮的可点击范围是不是也忒大了?

解决:给
UIButton
包装一个
UIView


// 创建按钮
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
[btn setImage:[UIImage imageNamed:@"nav_item_game_icon"] forState:UIControlStateNormal];
[btn setImage:[UIImage imageNamed:@"nav_item_game_click_icon"] forState:UIControlStateHighlighted];
[btn sizeToFit];

// 把UIButton包装成UIBarButtonItem 有会按钮点击范围过大的问题
// 解决这个问题
UIView *containView = [[UIView alloc] initWithFrame:btn.bounds];
[containView addSubview:btn];

// 设置导航栏左边按钮
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:containView];


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: