iphone - 使用 UITouch 旋转 UIView

标签 iphone uiview rotation touch

我有一个关于如何使用基于触摸的事件旋转 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/

相关文章:

iphone - CLLocationManager - iPhone 应用程序中的自定义位置管理器

iphone - 独特的隐形角色? objective-c

swift - 简化 UIView 动画 if/else

iphone - 我们可以使用相同的 Xib(包含 UIView)来支持横向和纵向吗

ios - 获取 NSLayoutConstraints 关联 View

javascript - 在 MxGraph 中启用顶点旋转

ios - 从特定一侧旋转 UIImageView - iOS

PHP UTF8 邮件在 iPhone 邮件应用程序上出现乱码

iphone - 切换到 map 应用后返回同一个应用

Java2D - 如何旋转图像并保存结果