KGHitTestingViews是一个小型辅助库,用来轻松增加视图的点击检测区域。
通常将按钮显示为20 x 20像素的大小。然而,iOS用户界面指南建议,所有可点击控件至少应有44 x 44像素的点击检测区域。解决这个问题的常见方法是在一个大的按钮中放置一个小图像,但这种解决方案会影响相对于小图像的对齐约束,并使布局变得更为尴尬。KGHitTestingViews旨在以简单的方式解决此问题。
要使用CocoaPods进行安装,请将以下内容添加到您的项目的Podfile中:
pod 'KGHitTestingViews'
或者,将KGHitTestingViews文件夹中所有文件拖放到Xcode项目中,并在需要时同意复制文件。
使用KGHitTestingViews
最简单的方法是使用UIView
分类:"UIView+KGHitTesting.h"
。不需要子类化!
@interface UIView (KGHitTesting)
- (void)setMinimumHitTestWidth:(CGFloat)width height:(CGFloat)height;
@end
将KGHitTestingView
或KGHitTestingControl
或KGHitTestingButton
子类化,并设置minimumHitTestHeight
和minimumHitTestWidth
为所需的点击检测区域大小。
@interface ButtonSubclass : KGHitTestingButton
@end
- (void)setup {
self.minimumHitTestWidth = 44.0;
self.minimumHitTestHeight = 44.0;
}
在“标识检查器”中子类化KGHitTestingView
或KGHitTestingControl
或KGHitTestingButton
,并在“属性检查器”中设置宽度和高度值。
点击检测区域的宽度和高度是最小值。如果您指定的点击检测区域宽度和高度比边界设定的更小,则将使用边界的宽度和高度。
KGHitTestingViews与Swift兼容!只需遵循“如何使用”部分。
"确定用户控制的光标(如鼠标光标或触摸屏界面的触摸点)是否与屏幕上绘制的特定图形对象(如形状、直线或曲线)相交的过程。" - 维基百科
-pointInside:
?我以为这是hit-testing。Hit test (-hitTest:
) 是一种更复杂的算法测试,涉及遍历子视图。Point inside (-pointInside:
) 仅是一个简单的几何测试,它检查一个 CGPoint
是否在给定视图的边界内。为了增加触摸面积,我们只需要修改几何计算。更多内容,请查看关于击中测试的这篇文章:[hit-testing-in-ios](http://smnh.me/hit-testing-in-ios/).
由 Krisjanis Gaidis 创建和维护。
贡献者
KGHitTestingViews 在 MIT 许可证下发布。有关详细信息,请参阅 LICENSE 文件。