1

我正在使用 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 线需要改变,但我不知道如何告诉它做出改变并留在那里。

非常欢迎任何帮助

4

1 回答 1

0

在以各种可能的方式重写代码大约 14 小时后,我只需要将有问题的标签放在“视图”框的顶部。我有某种分层问题。将标签放置在不可见的“视图”上后,我在过去两天尝试的几乎所有代码组合都有效。

于 2012-11-18T20:55:04.697 回答