我試圖在UIButton上實現拖放功能&,它工作正常,但我找不出一種方法來確定用戶何時放開按鈕,完成拖動。下面的代碼適用於拖動,但我需要在用戶完成拖動並釋放按鈕時收到通知。檢測UIButton事件何時完成
- (void)viewDidLoad
{
[gesturesBrowserButton addTarget:self action:@selector(wasDragged:withEvent:)
forControlEvents:UIControlEventTouchDragInside];
[gesturesBrowserButton addTarget:self action:@selector(finishedDragging:withEvent:)
forControlEvents:UIControlEventTouchDragExit];
}
- (void)wasDragged:(UIButton *)button withEvent:(UIEvent *)event
{
// get the touch
UITouch *touch = [[event touchesForView:button] anyObject];
// get delta
CGPoint previousLocation = [touch previousLocationInView:button];
CGPoint location = [touch locationInView:button];
CGFloat delta_x = location.x - previousLocation.x;
CGFloat delta_y = location.y - previousLocation.y;
// move button
button.center = CGPointMake(button.center.x + delta_x,
button.center.y + delta_y);
NSLog(@"was dragged");
}
- (void)finishedDragging:(UIButton *)button withEvent:(UIEvent *)event
{
//doesn't get called
NSLog(@"finished dragging");
}
啊,這個訣竅:)謝謝 – Snowman 2012-01-30 17:49:47
如果用戶拖入控件然後退出,是不是'UIControlEventTouchDragExit'?我假設你不想要那個。「 – 2012-01-30 18:03:23