iOS:按钮的非方形点击区域

Posted

技术标签:

【中文标题】iOS:按钮的非方形点击区域【英文标题】:iOS: Non-square hit areas for buttons 【发布时间】:2011-04-13 12:20:12 【问题描述】:

我需要制作一些相互重叠的三角形按钮。

虽然 UIButtons 可以将透明图像作为背景,并且 UIControls 可以有自定义视图,但它们的点击区域始终是方形的。如何为我的按钮创建一个三角形的命中区域?

我来自 FLash 背景,所以我通常会为我的视图创建一个 hitarea,但我不相信我可以在 Cocoa 中做到这一点。

有什么建议吗?

【问题讨论】:

【参考方案1】:

您可以通过继承 UIButton 并提供您自己的来实现:

- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event 
    // return YES if point is inside the receiver’s bounds; otherwise, NO.

Apple's UIView Documentation 提供详细信息,例如确认point 已经在接收者的坐标系中。

【讨论】:

谢谢,我会调查的。这里有一篇很好的文章,描述了使用带有 alpha iphonedevelopment.blogspot.com/2010/03/… 的图像的解决方案 这是一个可行的解决方案。但是即使我触摸按钮之外的区域,也会调用此方法。会不会是不必要的计算,尤其是有多个按钮?

以上是关于iOS:按钮的非方形点击区域的主要内容,如果未能解决你的问题,请参考以下文章

iPhone、地图、可点击的非矩形区域

如何处理对 UITableView 的非单元格区域的点击

iOS点击事件穿透以及扩大视图的响应区域

解决手机(移动端)点击事件失效问题

IOS UIScrollView - 同时滚动和点击元素

IOS自定义UIbutton,怎样让点击的有效区域集中在图标内?