我正在尝试减少UIButton的触控区域。这甚至可能吗?当用户触摸按钮并将其触摸拖到按钮外时,触摸事件应当在按钮图形结束时立即停止。不幸的是,该区域比实际图形大得多。我发现了很多关于如何增加面积而不是如何使面积变小的事情。
感谢您的帮助。
答案 0 :(得分:1)
我提出了一个解决方案。您可以继承UIButton
并覆盖touchesMoved:
,以便在触摸按钮之外识别要结束的触摸。这是我的片段。
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch * touch = [touches anyObject];
CGPoint touchPoint = [touch locationInView:self];
if(!CGRectContainsPoint(self.bounds, touchPoint))
{
[super touchesEnded:touches withEvent:event];
}
else
{
[super touchesMoved:touches withEvent:event];
}
}
这样做的缺点是,如果您退出按钮并再次返回,该按钮将不会激活。但除此之外,我认为它应该可以正常工作。