2009-10-14 27 views
0

我有一個圖像/按鈕的網格,我希望用戶能夠將他們的手指拖動到圖像/按鈕上,以便當他們的手指觸摸每個圖像/按鈕時調用一個事件。UIControlEventTouch ...?

我該怎麼做?

我現在能想到的最好的例子是聯繫人應用程序,您如何將手指拖動到字母列表中(右側),並在觸摸每個字母時跳轉到聯繫人列表的該部分。

回答

0

你將要在你的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); 
    } 
} 

請注意,假設多點觸控已被禁用,或者它會隨機選擇一個觸摸來記錄