起由:技术群里有人提问如何判断是苹果笔还是手指按下UIButton
解析思路:
一.深入响应链原理(网上大神们有很多原理的文章)
二.了解UIButton,UIEvent,UITouch间的关系
三.直接上代码:
自定义UIButton的子类,重写以下方法,其他UIView控件实现思路类似
- (BOOL)pointInside:(CGPoint)point withEvent:(nullableUIEvent*)event {
NSSet*set = [eventallTouches];
if(set.count>0) {
for(UITouch*touchinset) {
if(touch.type==UITouchTypePencil) {
NSLog(@"这是苹果笔");
returnfalse;
}else{
NSLog(@"这是其他触碰方式");
}
}
}
return true;
}
网友评论