KGHitTestingViews 0.9.5

KGHitTestingViews 0.9.5

测试已测试
Lang语言 Obj-CObjective C
许可 MIT
发布最新发布2016年5月

Krisjanis Gaidis维护。



  • Krisjanis Gaidis

概述

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

代码(子类化)

KGHitTestingViewKGHitTestingControlKGHitTestingButton子类化,并设置minimumHitTestHeightminimumHitTestWidth为所需的点击检测区域大小。

@interface ButtonSubclass : KGHitTestingButton
@end
- (void)setup {
    self.minimumHitTestWidth = 44.0;
    self.minimumHitTestHeight = 44.0;
}

界面构建器(子类化)

在“标识检查器”中子类化KGHitTestingViewKGHitTestingControlKGHitTestingButton,并在“属性检查器”中设置宽度和高度值。

重要提示

点击检测区域的宽度和高度是最小值。如果您指定的点击检测区域宽度和高度比边界设定的更小,则将使用边界的宽度和高度。

Swift支持

KGHitTestingViews与Swift兼容!只需遵循“如何使用”部分。

常见问题解答 (FAQ)

什么是hit-testing(击中测试)?

"确定用户控制的光标(如鼠标光标或触摸屏界面的触摸点)是否与屏幕上绘制的特定图形对象(如形状、直线或曲线)相交的过程。" - 维基百科

为什么覆盖 -pointInside:?我以为这是hit-testing。

Hit test (-hitTest:) 是一种更复杂的算法测试,涉及遍历子视图。Point inside (-pointInside:) 仅是一个简单的几何测试,它检查一个 CGPoint 是否在给定视图的边界内。为了增加触摸面积,我们只需要修改几何计算。更多内容,请查看关于击中测试的这篇文章:[hit-testing-in-ios](http://smnh.me/hit-testing-in-ios/).

致谢

由 Krisjanis Gaidis 创建和维护。

贡献者

  • mailworks 添加了 IBInspectable 功能。

许可证

KGHitTestingViews 在 MIT 许可证下发布。有关详细信息,请参阅 LICENSE 文件。