0
我有一個圖像/按鈕的網格,我希望用戶能夠將他們的手指拖動到圖像/按鈕上,以便當他們的手指觸摸每個圖像/按鈕時調用一個事件。UIControlEventTouch ...?
我該怎麼做?
我現在能想到的最好的例子是聯繫人應用程序,您如何將手指拖動到字母列表中(右側),並在觸摸每個字母時跳轉到聯繫人列表的該部分。
我有一個圖像/按鈕的網格,我希望用戶能夠將他們的手指拖動到圖像/按鈕上,以便當他們的手指觸摸每個圖像/按鈕時調用一個事件。UIControlEventTouch ...?
我該怎麼做?
我現在能想到的最好的例子是聯繫人應用程序,您如何將手指拖動到字母列表中(右側),並在觸摸每個字母時跳轉到聯繫人列表的該部分。
你將要在你的UIViewController中實現-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
。只要觸摸在屏幕上移動,就會調用此方法。然後,您可以使用座標(使用[myUITouch locationInView:self.view]
)或[self.view.layer hitTest:[myUITouch locationInView:self.view]]
來獲取發生觸摸的圖像/按鈕並從中進行工作。
舉例來說,如果我有十張圖片,每32個像素由32個像素的行,我想在他們每個人的感動記錄,我可以做類似如下:
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
CGSize buttonSize = myButton.bounds.size;
CGPoint touchPoint = [[touches anyObject] locationInView:self.view];
if (touchPoint.y < buttonSize.y) {
NSInteger buttonNumber = touchPoint.x/buttonSize.x;
NSLog(@"Button number %d pushed", buttonNumber);
}
}
請注意,假設多點觸控已被禁用,或者它會隨機選擇一個觸摸來記錄