我試圖建立與多點觸摸簡單的應用程序。我是iOS和objectivec/cocoa的新手。如果問題太愚蠢,請抱歉。iPhone/iPad的身份touchBegin,touchEnd
我想知道現在有多少手指活動,並且在用戶釋放一些手指或所有手指後釋放。我想要注意,我需要確切知道哪個手指被釋放。在第一眼看起來一切都很簡單...但在練習中我遇到了問題(
假設我在屏幕上同時放下三個手指,然後過了一段時間我放下了第四根手指。在這種情況下,在我的UIView.m文件中被稱爲兩個'touchesBegan'evens。 在第一個事件中,我計算了觸摸次數= 3',第二次觸摸次數爲4次(這是對的,因爲這是一個總數計數器)。因此,與此事件似乎一切都清楚了。
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
NSSet *allTouches = [event allTouches];
NSArray *allObjects=[allTouches allObjects];
touchCount = [NSNumber numberWithInt:[allObjects count]]; // this is my main counter of current active touches.
NSLog(@"%d", touchCount.intValue);
}
-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
//what I should do ????
}
讓我們把屏幕劃分爲4個部分。想象一下,在iPad屏幕上的4個矩形。
然後爲這個矩形創建四個4布爾變量。我們將是所有4個矩形的商店狀態。默認情況下,所有變量都是 - false;
bool rectangle1 = false;
bool rectangle2 = false;
bool rectangle3 = false;
bool rectangle4 = false;
然後當手指開始向下時,在'touchesBegan'事件中,我們更改布爾變量。我們應該改變哪個變量通過x-y座標知道。假設我將手指放在矩形#2上,然後在矩形#4上放下另一隻手指。在這種情況下,變量如下:
bool rectangle1 = false;
bool rectangle2 = true;
bool rectangle3 = false;
bool rectangle4 = true;
之後,我從矩形#4釋放一個手指。那麼我怎麼會在'touchesEnded'事件中知道這是從一開始就被釋放的手指在矩形#4區域?
謝謝,我正在試着製作鋼琴卷。 – user1195202 2012-02-09 18:12:02