gpt4 book ai didi

iphone - 使用CGAffineTransformMakeRotation时的抖动运动

转载 作者:行者123 更新时间:2023-12-01 16:59:49 24 4
gpt4 key购买 nike

我在使用CGAffineTransformMakeRotation进行跳跃运动时遇到问题。在到达第1和第2象限的顶部之前,它似乎工作正常,下面是我正在使用的代码和youtube链接,其中显示了发生的情况。任何见解将不胜感激。

我的目标是旋转带有svg的UIWebView。由于我无法轻易地检测到单独的UIWebView触摸,因此将空白的UIImageView放在其上。这使我能够检测到触摸并防止弹出复制对话框。

http://www.youtube.com/watch?v=x_OmS0MPdEE&feature=youtu.be

    - (void)touchesMoved: (NSSet *)touches withEvent:(UIEvent *)event {
[super touchesBegan:touches withEvent:event];
NSArray *allTouches = [touches allObjects];
CGPoint location = [[allTouches objectAtIndex:0] locationInView:self.view];
if(selected == 1) {
CGFloat rads = atan2f(location.y - (grid1.frame.size.height/2),location.x - (grid1.frame.size.width/2));
grid1.transform = grid1Btn.transform = CGAffineTransformMakeRotation(rads);
}

}

- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
[super touchesBegan:touches withEvent:event];
NSArray *allTouches = [touches allObjects];
CGPoint location = [[allTouches objectAtIndex:0] locationInView:self.view];

if(CGRectContainsPoint(grid1Btn.frame, location))
{
selected = 1;
}
}

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
selected = -1;
}

最佳答案

您在计算中使用了frame.size.*。请注意,这些值(与bounds.size.*不同)受transform影响。请改用grid1.center。这也更合乎逻辑(围绕中心旋转)。

接下来需要修复的是,触摸开始时不应跳到新位置:)

关于iphone - 使用CGAffineTransformMakeRotation时的抖动运动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8197482/

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