3

如何更改触发外部修饰方法的距离?UIButton 的外部修饰方法仅在修饰位置距按钮约 100 像素时触发,因为我可以看到当从内部拖动约 100 像素到外部时按钮的突出显示发生了变化。有什么办法可以缩短距离吗?谢谢!

4

1 回答 1

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
    }
}

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

非凡:事件将包含坐标

UPDATE://根据您在下面的评论请尝试,在if条件下,您需要检查您的端点是什么样的类

假设您要缩短到距离按钮 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
    }
}

希望它有帮助:)

于 2012-11-10T09:04:03.360 回答