减少UIButton的触摸区域

时间:2012-10-12 17:19:01

标签: ios cocoa-touch ios5

我正在尝试减少UIButton的触控区域。这甚至可能吗?当用户触摸按钮并将其触摸拖到按钮外时,触摸事件应当在按钮图形结束时立即停止。不幸的是,该区域比实际图形大得多。我发现了很多关于如何增加面积而不是如何使面积变小的事情。

感谢您的帮助。

1 个答案:

答案 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];
    }
}

这样做的缺点是,如果您退出按钮并再次返回,该按钮将不会激活。但除此之外,我认为它应该可以正常工作。