如何在iPhone上實現捏手勢?我很熟悉在iPhone上使用觸摸事件,但我非常懶惰,不想重新發明輪子,使其與PINCH手勢一樣普遍......源代碼或鏈接將有所幫助。如何在iPhone上捏手勢?
回答
你需要自己使用一些基本的數學來實現它。
(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event;
這些是您需要在應用程序中實現的委託方法。
您需要獲取兩次觸摸之間的距離,然後計算您自己代碼中的距離變化。
使用獲得的距離的數學公式被稱爲dot product
我只是想指出,他們在引用的教程中使用的公式不正確。 我已將其更新爲包含教程中未填的絕對值。
這是點積:
- (CGFloat)distanceBetweenTwoPoints:(CGPoint)fromPoint toPoint:(CGPoint)toPoint
{
float xDist = fromPoint.x - toPoint.x;
float yDist = fromPoint.y - toPoint.y;
float result = sqrt(pow(xDist,2) + pow(yDist,2));
return result;
}
編輯: 我在以前的答案搞錯了....它已經有一段時間,因爲我做了任何一種數學的。
如果你不平方根結果,你不會得到點之間的真正距離。這被稱爲計算兩個向量之間的大小。
這是正確的做法。如果你想省略sqrt,你將不會有兩點之間的確切距離。
如果您不打算答案,您的代碼將工作,但它將使用比實際值大得多的測量值。所以在將來如果你需要得到兩點之間的距離,它將返回類似90000的東西,而不是實際的像素距離,這將是300px。
嗯......不知道你引用的'點積'鏈接多少會派上用場,但至少要感謝回覆...... – RexOnRoids 2009-07-10 04:01:21
沒有它,你無法計算兩次觸摸之間的距離。這是至關重要的。 – 2009-07-10 04:07:35
Thx - 源代碼在這種情況下更容易理解..我沒有準備坐下來試圖吸收整個wiki頁面上覆雜的'點積'LOL – RexOnRoids 2009-07-10 04:10:33
如果您正在尋找一個捏合手勢的簡單代碼示例,我使用示例應用程序I describe here(該頁面的倒數第二個和最後一個版本)中Brock描述的方法。在這個例子中,捏手勢用於縮放一些核心動畫層。
他所描述的只是距離計算只是在兩點之間應用畢達哥拉斯定理(將X和Y距離作爲直角三角形的兩個面)。
嗯......似乎有些人對如何使用基本數學非常困惑。點積是完全不相關的,只是混淆了這些問題。兩個向量之間的點產品用於計算它們之間的角度。
你實際上需要使用pythagorus定理。點與點之間的距離沒有關係 - 只有pythagorous!
很確定這裏提出的解決方案已經過時,有利於在iOS 3.2及更高版本中使用新的UIPinchGestureRecognizer類。
- 1. 在cocos2d捏手勢,如何?
- 2. 在WP8捏手勢
- 3. 捏捏手勢識別器
- 4. 如何準確放大捏手勢上的特定點(多捏)?
- 5. 三指捏手勢
- 6. Android Touchevent - 捏手勢
- 7. 查找捏手勢
- 8. 如何在iphone中完全禁用捏手勢?
- 9. 在iPad上的jQuery觸發捏手勢
- 10. 檢測在iPhone上開始的捏手勢MapView
- 11. 如何防止MPMoviePlayerViewController中捏合手勢?
- 12. 捏縮放手勢android
- 13. 捏手勢和單觸
- 14. 捏手勢不會工作
- 15. 捏手勢一個手指ios
- 16. 在Android Web視圖中捏手勢
- 17. iPhone上的複雜手勢
- 18. 捏手勢的手勢綁定限制IOS
- 19. iOS捏手勢與滑動手勢衝突
- 20. 斯威夫特:iphone模擬器捏手勢不工作?
- 21. iPhone - UIWebView手勢
- 22. iPhone UIPickerView手勢
- 23. 如何在UIScrollView中使用捏手勢識別器?
- 24. 如何測試在Android模擬器捏夾手勢
- 25. 縮放通過捏手勢的UICollectionView
- 26. 離子角手勢捏崩潰ios
- 27. iOS捏手勢識別器公差
- 28. 客觀C改變捏手勢視圖
- 29. 捏(縮放)手勢不正確縮放
- 30. 的Flash AS3捏合手勢支持
看起來這個樣品在捏縮放http://cocoabugs.blogspot.com/2011/03/pinch-zoom-using-uipinchgesturerecogniz.html – 2011-03-10 02:47:16