幾乎大部分的 iOS 裝置都有支援多點觸碰的功能,也有越來越多的應用程式在開發時也將多點觸碰功能納入自己的 Use case 中,至於要如何取得在多點觸碰時每個點的畫面座標,可以參考下列的程式碼示範。
首先必須先確定 UIView 已經啟用多點觸碰的功能,啟用的方法可以在 Interface Builder 內點選該 UIView 在 Attributes 屬性分頁,將 Multiple Touch 項目打勾,如下圖。
或是直接使用程式碼來啟用多點觸碰的功能。
self.view.multipleTouchEnabled = YES;
接下來就可以在事件中取得多點觸碰時每個點的座標了,其方法如下。
//對畫面進行觸碰時所觸發的函式
- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
//計算同一時間有多少觸碰點
int count = [[touches allObjects] count];
//從陣列中取得第一個觸碰點(編號0)
CGPoint p = [[[touches allObjects] objectAtIndex:0]locationInView:self.view];
//從陣列中取得第二個觸碰點(編號1)
CGPoint p = [[[touches allObjects] objectAtIndex:1]locationInView:self.view];
}
上述程式碼中,[touches allObjects] 會回傳一個 NSArray 的類型,當然每次觸碰畫面時這個陣列也會隨之更新,所以我們也可以宣告一個 NSArray 型態的變數來接收這些數值,方便之後的操作。
NSArray *allTouches = [touches allObjects];
沒有留言:
張貼留言