作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我添加了 UIButton
类型为 UIButtonTypeInfoDark
到一个 View 和它的触摸区域是巨大的。我知道 Apple 推荐 44px,但在这种情况下,它要大一些。我为 View 设置了一个浅灰色背景,以查看 44px 的结束区域在哪里,并且我可以在浅灰色 View 区域之外触摸并仍然收到 infoTapped:
事件。
谁能澄清为什么?谢谢!
_infoButton = [UIButton buttonWithType:UIButtonTypeInfoDark];
[_infoButton setShowsTouchWhenHighlighted:NO];
[_infoButton setFrame:CGRectMake(frame.size.width-44, 0, 44, 25)];
[_infoButton setBackgroundColor:[UIColor lightGrayColor]];
[_infoButton addTarget:self action:@selector(infoTapped:) forControlEvents:UIControlEventTouchUpInside];
最佳答案
要解决这个问题很可能需要子类化。您可以覆盖 pointInside:withEvent:
在 UIButton
子类化并返回 NO
除非严格在按钮的范围内:
- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event {
return CGRectContainsPoint(self.bounds, point);
}
YES
超出范围的查询以使控件更容易用手指触摸。
关于ios - UIButtonTypeInfoDark Touch Area,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13746331/
我添加了 UIButton类型为 UIButtonTypeInfoDark到一个 View 和它的触摸区域是巨大的。我知道 Apple 推荐 44px,但在这种情况下,它要大一些。我为 View 设置
我是一名优秀的程序员,十分优秀!