我試圖讓我的某個視圖上的某些UIButton
實例被觸摸並在屏幕上拖動(最終伴隨着動量,但那是爲了後來!)。我的工作方式非常簡單,如下所示,但問題是,通過觸摸按鈕開始拖動它,它會附着在手指上,並且通過擡起手指,觸發「Touch Up Inside」事件,這是我實際點擊按鈕時要執行的代碼。觸摸並拖動UIButton,但釋放手指時不觸發它
簡而言之:我如何區分水龍頭和拖放?我是否需要將點擊更改爲短按手勢識別器或類似的功能?代碼:
在viewDidLoad中:
[firstButton addTarget: self action: @selector(wasDragged: withEvent:) forControlEvents: UIControlEventTouchDragInside];
而且我wasDragged方法:
- (void)wasDragged:(UIButton *)button withEvent:(UIEvent *)event
{
if (button == letter1Button) {
UITouch *touch = [[event touchesForView:button] anyObject];
CGPoint previousLocation = [touch previousLocationInView:button];
CGPoint location = [touch locationInView:button];
CGFloat delta_x = location.x - previousLocation.x;
CGFloat delta_y = location.y - previousLocation.y;
button.center = CGPointMake(button.center.x + delta_x, button.center.y + delta_y);
}
}
其工作正常謝謝 – nivritgupta
感謝這個偉大的提示。 ***請注意,***奇怪的是,我有一種情況:通過故事板進行:您實際上必須在故事板上設置取消觸摸視圖***關閉***:我不知道爲什麼。 – Fattie