2011-04-13 25 views
3

我需要制作一些相互重叠的三角形按钮。iOS:按钮的非方形命中区域

尽管UIButtons可以将透明图像作为背景,而UIControls可以具有自定义视图,但它们的命中区域总是正方形。我怎样才能为我的按钮创建一个三角形的区域?

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

任何提示?

回答

3

您可以通过继承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已经接收器的坐标系统相同。

+0

谢谢,我会研究一下。有一个很好的写在这里描述一个解决方案使用图像与阿尔法 http://iphonedevelopment.blogspot.com/2010/03/irregularly-shaped-uibuttons.html – 2011-04-13 12:45:07

+0

这是一个工作的解决方案。但即使触摸按钮外的区域,也会调用此方法。这不是不必要的计算,特别是多个按钮? – RealNmae 2015-12-14 11:08:09