xcode touchesBegan多个任务

时间:2012-11-16 21:59:13

标签: xcode uiimageview touchesbegan

我正在使用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-postition让我在NSLog语句中打印它们,但它不会让我用它们的值更新标签,或做任何与UIImageView无关的事情。 我不想在运行时动态创建UIImageView。我想用那个并移动它。 我很确定它的circles.center = p行需要改变,但我不知道如何告诉它做出改变并留在那里。

非常欢迎任何帮助

1 个答案:

答案 0 :(得分:0)

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