我從UIEvent
一組觸摸的座標。有沒有辦法檢查它們是否包含在一個特定的形狀 - 一個多邊形 - 我可以定義?
我有Java的經驗,我會使用polygon
類和調用contains(int x, int y)
方法。在Cocoa Touch中有類似的方法嗎?
我從UIEvent
一組觸摸的座標。有沒有辦法檢查它們是否包含在一個特定的形狀 - 一個多邊形 - 我可以定義?
我有Java的經驗,我會使用polygon
類和調用contains(int x, int y)
方法。在Cocoa Touch中有類似的方法嗎?
如果將多邊形定義爲CGPath
,則可以使用CGPathContainsPoint()
...您可以告訴我們關於您的應用程序概念的更多信息嗎?
編輯:
還有更高級別的UIBezierPath
和/或NSBezierPath
..這兩個對象有-containsPoint
方法。
使用CGRectContainsPoint(CGRect rect, CGPoint point)
OR
也許你正在做一些不尋常的,就像你只想成爲一個三角形或東西內檢測到觸摸。如果是這樣,你可以忽略這一點。但是,因爲你是新來的iOS,我會建議使用一個UIControl
子與目標 - 動作對或UIGestureRecognizer
。
示例代碼如下:
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside];
在target
後 - 可能是你的視圖控制器,您將實現方法:
- (void)buttonPressed:(id)sender
{
}
用手勢識別器,你會增加手勢識別器與UIView
相似,並與UIControl
一樣添加目標動作對:
UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(viewTapped:)];
[self.view addGestureRecognizer:tapRecognizer];
- (void)viewTapped:(UIGestureRecognizer *)recognizer
{
}
這些是基本用戶交互的典型方法。你必須多簡單用這些時間比使用touchesBegan
&公司,但如果他們是你需要什麼然後其他應答者有你覆蓋。
感謝。這正是我正在尋找的。我找不到該解決方案爲我的生活。 – user1941895
好,這是使用核芯顯卡C API,所以它不是在的OBJ-C或C++的級別......因此,它不會出現在對象 - 類文檔。 – nielsbot