触及外界

时间:2012-11-10 06:02:38

标签: ios touch

如何更改触发外部方法的距离? UIButton的修饰外部方法仅在触摸位置距离按钮大约100个像素时触发,因为我可以看到当从内部约100个像素向外拖动时按钮的高光变化。 有没有办法缩短距离? 谢谢!

1 个答案:

答案 0 :(得分:1)

你可以试试吗

- (IBAction)btnDragged:(id)button withEvent:(UIEvent*)event {
    UITouch *t = [[event touchesForView:yourButtonView] anyObject];
    CGPoint touchLocation = [t locationInView:self.view];
    //NSLog(@"%@", NSStringFromCGPoint(touchLocation));

    if (your condition, using CGPoint to check for shorten distance, compare your button location and touchLocation) {
      //fire some stuff
    }
}

希望它有所帮助,请给我一个反馈,所以我知道发生了什么,然后我可以编辑我的代码来帮助你,祝你好运:)。

非凡:事件将包含坐标

更新://根据您的评论如下 请尝试,如果有条件,你需要检查你的终点是什么类

假设您希望缩短距离按钮50像素, 所以条件应该与此类似。

if ( fabsf(yourButton.frame.x - touchLocation.x) <= 50 && fabsf(yourButton.frame.y - touchLocation.y) <= 50 ) {

    UIView *v = [self.view hitTest:touchLocation withEvent:nil];
    if ([v isKindOfClass:[UIButton class]]) //check that it is button B or not
    {
        //do your stuff
    }
}

希望它有所帮助:)