我有一个关于如何使用基于触摸的事件旋转 UIView 的问题。
很简单,我想围绕 anchor 旋转 UIView,具体取决于我在该 View 中触摸和关闭的位置。想象一下高保真音响上的音量旋钮,您可以用一根手指转动它。
我已经使用 CAKeyframeAnimation 构建了一个旋转方法,该方法执行 transform.rotation.z,但是我不确定是否(a)我应该将其与触摸方法结合使用,以及(b)我如何可以获取触摸相对于底层 UIView 的坐标/角度,然后将其旋转为指向触摸。
我希望我说得有道理……有人可以提出任何建议吗?
最佳答案
- (void) touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
CGPoint newLocationPoint = [[touches anyObject] locationInView:self.superview];
int x = self.superview.center.x;
int y = self.superview.center.y;
float dx = newLocationPoint.x - x;
float dy = newLocationPoint.y - y;
double angle = atan2(-dx,dy);
self.layer.position = self.superview.center;
self.layer.transform = CATransform3DMakeRotation(angle, 0, 0, 1);
NSLog(@"%f,%f ", dx,dy);
}
将其放入您的 UIView 子类中,瞧!
关于iphone - 使用 UITouch 旋转 UIView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3754149/