gpt4 book ai didi

ios - TouchesMoved 只移动一点点

转载 作者:行者123 更新时间:2023-11-29 02:23:10 31 4
gpt4 key购买 nike

我试图允许用户在屏幕上拖动标签,但在模拟器中,每次我触摸屏幕上的某个位置时,它只会移动一点。它会跳到该位置,然后稍微拖动,但随后它将停止拖动,我必须触摸不同的位置才能使其再次移动。这是我的 .m 文件中的代码。

-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{
UITouch *Drag = [[event allTouches] anyObject];

firstInitial.center = [Drag locationInView: self.view];

}

我的最终目标是能够在屏幕上拖动三个不同的标签,但我只是想首先解决这个问题。我将非常感谢任何帮助!

谢谢。

最佳答案

尝试使用 UIGestureRecognizer 而不是 -touchesMoved:withEvent:。并实现类似于以下代码的内容。

//Inside viewDidLoad
UIPanGestureRecognizer *panGesture = [[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(dragonMoved:)];
panGesture.minimumNumberOfTouches = 1;
[self addGestureRecognizer:panGesture];
//**********

- (void)dragonMoved:(UIPanGestureRecognizer *)gesture{

CGPoint touchLocation = [gesture locationInView:self];
static UIView *currentDragObject;

if(UIGestureRecognizerStateBegan == gesture.state){

for(DragObect *dragView in self.dragObjects){

if(CGRectContainsPoint(dragView.frame, touchLocation)){

currentDragObject = dragView;
break;
}
}


}else if(UIGestureRecognizerStateChanged == gesture.state){

currentDragObject.center = touchLocation;

}else if (UIGestureRecognizerStateEnded == gesture.state){

currentDragObject = nil;

}

}

关于ios - TouchesMoved 只移动一点点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27879604/

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