我正在使用 touchesBegan 和 touchesMoved 将 UIImageView 移动到您在屏幕上触摸的任何位置。它移动一个标记(我移动的 UIimageView),在 UIImageview 中绘制一个形状并读取一个图形。
但是,每当我尝试对这些数据执行任何操作(例如更新标签)时,UIImageView 都会匆匆回到它开始的位置,而不是停留在原来的位置。
-(void) touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event{
UITouch *myTouch =[[event allTouches] anyObject];
CGPoint location = [myTouch locationInView:self.view];
int x = location.x;
int y = location.y;
NSLog(@"x = %i",x);
NSLog(@"y = %i",y);
CGPoint p={x, y};
circles.center = p;
上面的代码工作正常,并将图像移动到新位置。但是,我应该添加一些非常简单的东西吗?
changeInY.text = [NSString stringWithFormat:@"Main Label"];
并且 UIImageView (圆圈)不再位于 .center = p 处。标签更新了,UIImageView 在进行任何触摸之前冲回了我将它倾倒在情节提要上的地方。它肯定会移动,但会冲回来。如果没有标签指令,它会停留在原处并完成下一次触摸。
它会给出我的 x 位置和 y 位置,并让我在 NSLog 语句中打印它们,但它不会让我用它们的值更新标签,或者做任何与 UIImageView 无关的事情。我不想在运行时动态创建 UIImageView 。我想使用那个并移动它。我相当确定它的 circles.center = p 线需要改变,但我不知道如何告诉它做出改变并留在那里。
非常欢迎任何帮助