【问题标题】:UIButton click by default going to right bar button item click on nav barUIButton 默认点击右栏按钮项目点击导航栏
【发布时间】:2012-04-02 23:47:23
【问题描述】:

我在UIView 的右侧栏按钮项正下方有一个UIButton

大多数时候,当我点击 UIButton 时,右栏按钮项会被点击。

右栏按钮项的高度设置正确,不超过导航栏的高度。

在这种情况下需要做什么?

【问题讨论】:

  • 将按钮移远点?触摸屏只能这么精确,手指也不是最精确的指点工具
  • 根据产品设计,按钮需要正好位于右栏按钮项的下方。还有其他方法可以实现吗?
  • 如果是可用性问题,那就把它踢回设计师 - 手指只能如此准确。
  • 希望这可以做到,但不可能。现在需要技术帮助。

标签: iphone objective-c ios uibutton uibarbuttonitem


【解决方案1】:

编辑:我重新阅读了您的问题。导航栏中的按钮具有比导航栏更大的点击区域设计。不要将按钮放置在靠近导航栏的位置;正如您所体验的那样,它们使用户难以点击其中一个或另一个。

确保包含按钮的视图足够大以完全包含它。如果一个按钮位于一个不剪裁其子视图的视图中,您可以看到该按钮,但不能与之交互。

UIView *containerView = [[UIView alloc] initWithFrame:CGRectZero];
UIButton *button = ...;//whatever button, added target and everything
[containerView addSubview:button];
[contaierView setClipsToBounds:NO]; //NO is the default, anyway

在这个例子中,按钮在containerView 中是可见的,但它的动作永远不会被调用。尝试仔细检查您的视图,如下所示:

[containerView setBackgroundColor:[UIColor greenColor]];

【讨论】: