gpt4 book ai didi

objective-c - 在 touchesMoved 上获取 UIView 的旋转方向

转载 作者:搜寻专家 更新时间:2023-10-30 19:47:15 28 4
gpt4 key购买 nike

这听起来可能很有趣,但我花了几个小时尝试使用 UIView 和一些触发器重新创建一个具有真实旋转的旋钮。我达到了目标,但现在我不知道如何知道旋钮是向左旋转还是向右旋转。最相关的数学部分在这里:

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{    UITouch *touch = [touches anyObject];    CGPoint pt = [touch locationInView:self];    float dx = pt.x  - iv.center.x;    float dy = pt.y  - iv.center.y;    float ang = atan2(dy,dx);    //do the rotation    if (deltaAngle == 0.0) {        deltaAngle = ang;        initialTransform = iv.transform;    }else    {        float angleDif = deltaAngle - ang;        CGAffineTransform newTrans = CGAffineTransformRotate(initialTransform, -angleDif);        iv.transform = newTrans;        currentValue = [self goodDegrees:radiansToDegrees(angleDif)];    }}

理想情况下,我可以利用一个数值来告诉我旋转是正数还是负数。

最佳答案

如果旋钮的中心点是您用于旋钮的图像的中心,那么您应该能够检测到触摸是否从中心的左侧/右侧开始并向上/向下移动。如果触摸从左侧开始并向下移动,则它会向左旋转。对于从中心另一侧开始的触摸,反之亦然。您可以通过将连续的 x 坐标放在 touchesDidMove 方法中的数组中并进行简单比较来检测触摸是向上还是向下移动。

关于objective-c - 在 touchesMoved 上获取 UIView 的旋转方向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2474491/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com