3
我需要制作一些相互重叠的三角形按钮。iOS:按钮的非方形命中区域
尽管UIButtons可以将透明图像作为背景,而UIControls可以具有自定义视图,但它们的命中区域总是正方形。我怎样才能为我的按钮创建一个三角形的区域?
我来自一个FLASH背景,所以我通常会为我的视图创建一个hitarea,但我不相信我可以在Cocoa中做到这一点。
任何提示?
我需要制作一些相互重叠的三角形按钮。iOS:按钮的非方形命中区域
尽管UIButtons可以将透明图像作为背景,而UIControls可以具有自定义视图,但它们的命中区域总是正方形。我怎样才能为我的按钮创建一个三角形的区域?
我来自一个FLASH背景,所以我通常会为我的视图创建一个hitarea,但我不相信我可以在Cocoa中做到这一点。
任何提示?
您可以通过继承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
已经接收器的坐标系统相同。
谢谢,我会研究一下。有一个很好的写在这里描述一个解决方案使用图像与阿尔法 http://iphonedevelopment.blogspot.com/2010/03/irregularly-shaped-uibuttons.html – 2011-04-13 12:45:07
这是一个工作的解决方案。但即使触摸按钮外的区域,也会调用此方法。这不是不必要的计算,特别是多个按钮? – RealNmae 2015-12-14 11:08:09