gpt4 book ai didi

ios - setTranslation :inView: 中的速度问题

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:16:11 26 4
gpt4 key购买 nike

我正在使用这种方法:

- (void)setTranslation:(CGPoint)translation inView:(UIView *)view

来自 UIPanGestureRecognizer 类,我不理解围绕它的速度讨论。

Appel 的文档说:

Sets the translation value in the coordinate system of the specified view. Changing the translation value resets the velocity of the pan.

这到底是什么意思?什么是“锅的复位速度”?

任何帮助将不胜感激..提前致谢!

--编辑

查看这段代码:

if (recognizer.state == UIGestureRecognizerStateChanged) {
CGPoint translation = [recognizer translationInView:self.cardsScrollView];

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

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

最佳答案

这意味着如果您正处于平移手势的中间(您正在拖动某物)并且您在该手势上调用了 setTranslation:inView:,则它的速度将为重置为 0;平移手势不仅可以为您提供平移,还可以提供手势的速度(您拖动的速度),以每秒为单位(在本例中为每秒点数)。您可以通过调用 velocityInView: 访问速度。如果您不使用速度,则无需担心,否则请牢记上述内容。

更新:

我猜您是想在拖动时移动 View 。我会略有不同。

if (recognizer.state == UIGestureRecognizerStateBegan) {
CGAffineTransform transform = recognizer.view.transform;
[recognizer setTranslation:CGPointMake(transform.tx, transform.ty) inView:self];
} else if (recognizer.state == UIGestureRecognizerStateChanged) {
CGPoint translation = [recognizer translationInView:self.cardsScrollView];
recognizer.view.transform = CGAffineTransformMakeTranslation(translation.x, translation.y);
}

请记住,self.cardsScrollView 应该是您要移动的 View 的父 View 。

关于ios - setTranslation :inView: 中的速度问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28472557/

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