gpt4 book ai didi

objective-c - 在设置 UILabel 文本时使用 UIPanGestureRecognizer 进行翻译

转载 作者:行者123 更新时间:2023-12-05 02:24:19 28 4
gpt4 key购买 nike

在将 UILabel 的文本设置为手势速度时,我在简单地使用 UIPanGestureRecognizer 转换 View 时遇到了问题。

我已经成功地用这样的平移手势翻译了一个 View (在 IB 的帮助下):

- (IBAction)handleGesture:(UIPanGestureRecognizer *)sender

{
CGPoint translation = [sender translationInView:self.view];

sender.view.center = CGPointMake(sender.view.center.x + translation.x, sender.view.center.y + translation.y);

[sender setTranslation:CGPointMake(0, 0) inView:self.view];
}

但是,当我将以下行添加到此方法时, View 停止平移,但 UILabel 会随速度更新:

self.myLabel.text = [NSString stringWithFormat:@"%@", [NSNumber numberWithInt:[sender velocityInView:self.roundShape].y]];

我该如何解决这个问题?

最佳答案

基本上,您从 Pan Gesture Recognizer 获得的翻译值是一个相对值。相对于手势开始识别触摸时的起点。因此,您要做的是保持手势开始的原始点并将平移应用到该点,而不是 View 的当前位置。

- (void)gestureDidTranslate:(UIPanGestureRecognizer *)panGesture
{
if([panGesture state] == UIGestureRecognizerStateBegan){
self.originalPoint = self.movingView.center;
}

CGPoint translation = [panGesture translationInView:self.view];
self.movingView.center = CGPointMake(self.originalPoint.x+translation.x, self.originalPoint.y+translation.y);
self.label.text = NSStringFromCGPoint([panGesture velocityInView:self.view]);
}

我想不出有什么时候您会想要在识别器识别时将翻译值归零。

关于objective-c - 在设置 UILabel 文本时使用 UIPanGestureRecognizer 进行翻译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13269181/

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