修饰超出范围

Posted

技术标签:

【中文标题】修饰超出范围【英文标题】:touch up outside range 【发布时间】:2012-11-10 06:02:37 【问题描述】:

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

【问题讨论】:

【参考方案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
    

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

remarkable:事件将包含坐标

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
    

希望对你有帮助:)

【讨论】:

感谢您的回复。其实我是想实现滑动按钮操作;首先我触摸一个按钮A,然后按钮B出现在某个地方,然后我按住触摸,滑动到按钮B,当我在B内部触摸时,我想触发我的方法。问题是,B内部的修饰方法无法触发,我解决问题的唯一方法是检查按钮A的外部修饰方法。但似乎超出了我的预期。

以上是关于修饰超出范围的主要内容,如果未能解决你的问题,请参考以下文章

linux进不了,提示信号超出范围。

分配对局部变量的引用,如果局部变量超出范围,它会超出范围吗?

对于char型的,如果超出范围怎样算?

对于char型的,如果超出范围怎样算?

JsLint'超出范围'错误

PDO PHP - PDOException - 数值超出范围:1264 第 1 行的列“customer_id”的值超出范围