BKHitSlop 1.0.0

BKHitSlop 1.0.0

测试已测试
Lang语言 Obj-CObjective C
许可证 MIT
发布最后发布2016年11月

James IdeAndrew Toulouse维护。



BKHitSlop 1.0.0

  • Andrew Toulouse

安装

  1. 将BKHitSlop添加到Podfile中。
  2. 在您的终端中,运行pod install

用法

  1. #import <BKHitSlop/BKHitSlop.h>添加到源文件中(或者添加到前缀头文件中,如果您想在项目中任何地方访问它)。
  2. 在您的按钮(或其他UIView)上实现方法myButton.bk_hitSlop = UIEdgeInsetsMake(-50, -50, -50, -50); - 或者您的首选UIEdgeInsets值。负值将被忽略。

常见问题解答

Q:这是如何工作的?
A:很简单!UIView有一个方法-pointInside:withEvent:,它决定事件点(可能是触摸点)是否位于自身内部。当您触摸屏幕时,UIView层次结构会查询以确定响应该触摸的“最佳”视图。BKHitSlop将其实现替换为我们自己的。这是(主要是)安全的。

当您设置hit slop时,首先,我们会检查点是否根据原始实现被认为是视图内部 - 如果是,我们就短路并返回YES。否则,视图的边界会通过UIEdgeInsets值进行内缩。

附带说明:这就是为什么内缩的组件在负值时不具备任何效果。请注意,负内缩是往外的,而不是向内的。

不管怎样,一旦我们做了这些来确定要测试的新矩形,我们就使用CGRectContainsPoint来看点是否在这个矩形内。