我想知道如何在我的代碼中平滑UITouch
。我能夠檢測到我的UIView
上的UItouch
,但是當我嘗試使用CGAffineTransform
旋轉視圖時,它不會平滑地旋轉。我必須按下或長時間手指觸摸iPhone進行這種旋轉。 如何執行平滑旋轉,如Roambi Visualizer應用程序。 感謝您的幫助。UIView觸控平滑旋轉
3
A
回答
3
transform
是的UIView的動畫屬性,所以你可以使用核心動畫製作平滑旋轉:
CGAffineTransform newTransform = //...construct your desired transform here...
[UIView animateWithDuration:0.2
animations:^{view.transform = newTransform;}];
+0
謝謝你的完美答案! – 2012-05-15 02:09:45
1
大家好,我發現以下解決我的問題,它在touchesMoved作品對我來說... ..
下面是代碼....
UITouch *touch = [touches anyObject];
CGPoint currentLocation = [touch locationInView:self.superview];
CGPoint pastLocation = [touch previousLocationInView:self.superview];
currentLocation.x = currentLocation.x - self.center.x;
currentLocation.y = self.center.y - currentLocation.y;
pastLocation.x = pastLocation.x - self.center.x;
pastLocation.y = self.center.y - currentLocation.y;
CGFloat angle = atan2(pastLocation.y, pastLocation.x) - atan2(currentLocation.y, currentLocation.x);
CGAffineTransform transform = CGAffineTransformMakeRotation(angle);
// Apply the affine transform
[[self.superview viewWithTag:ROTATE_VIEW_TAG] setTransform:transform] ;
+0
如果你想逐漸旋轉它,你應該使用[view setTransform:CGAffineTransformRotate(view.transform,angle)]。否則,這個工程太棒了! – 2011-09-14 14:37:02
1
這可能是也可能不是死多頭,但也有凸輪的回答幾個小問題。
pastLocation.y = self.center.y - currentLocation.y;
需求是
pastLocation.y = self.center.y - pastLocation.y;
如果您正在尋找這樣做在迅速,我用凸輪的答案找出以下幾點:
override func touchesMoved(touches: Set<NSObject>, withEvent event: UIEvent) {
var touch: UITouch = touches.first as! UITouch
var currentTouch = touch.locationInView(self.view)
var previousTouch = touch.previousLocationInView(self.view)
currentTouch.x = currentTouch.x - self.view.center.x
currentTouch.y = self.view.center.y - currentTouch.y
previousTouch.x = previousTouch.x - self.view.center.x
previousTouch.y = self.view.center.y - previousTouch.y
var angle = atan2(previousTouch.y, previousTouch.x) - atan2(currentTouch.y, currentTouch.x)
UIView.animateWithDuration(0.1, animations: {() -> Void in
bigCircleView?.transform = CGAffineTransformRotate(bigCircleView!.transform, angle)
})
}
相關問題
- 1. 使旋轉平滑
- 2. jQuery的旋轉輪 - 平滑
- 3. TweenJS旋轉平滑問題
- 4. 平滑相機旋轉
- 5. 平滑地旋轉球體
- 6. 平滑字符旋轉
- 7. 如何在旋轉UIView之後獲得平滑邊緣
- 8. 平滑地旋轉和改變陰影UIView的大小
- 9. 旋轉UIView的X軸(水平軸)
- 10. 旋轉uiview使用觸摸(ipad和iphone)
- 11. 旋轉UIView在可可觸摸
- 12. UIView旋轉
- 13. 旋轉UIView iPhone
- 14. BezierPath旋轉UIView
- 15. AndEngine和平滑的旋轉精靈
- 16. 平滑地旋轉Viewbox內容
- 17. CSS變換旋轉不平滑
- 18. cocos2d中更平滑的精靈旋轉?
- 19. 平滑器慢速旋轉UIImage
- 20. D3旋轉文字:在Chrome中平滑?
- 21. InControl - 如何平滑旋轉播放器
- 22. 使對象順利旋轉和平滑
- 23. 使用SimpleOnGestureListener進行Android平滑旋轉
- 24. 使用子彈和Ogre3D平滑旋轉
- 25. ImageView中的動畫旋轉不平滑
- 26. AndEngine沿路徑平滑旋轉
- 27. Flex中的平滑圖像旋轉
- 28. UIView下旋轉UILabel
- 29. 如何旋轉UIView?
- 30. UIView旋轉否XIB
UIView的動畫可以讓旋轉非常流暢如你所願,使用動畫的時間長度 – Splendid 2011-03-19 18:33:52