【发布时间】:2012-11-16 21:59:13
【问题描述】:
我正在使用 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 线需要改变,但我不知道如何告诉它做出改变并留在那里。
非常欢迎任何帮助
【问题讨论】:
-
我现在已经尝试了几十种方法。我尝试使用带有点击拦截器的手势识别器,我尝试将值保存到 NSUerdefaults 和 nsdictionary 并稍后使用。我尝试过touchesended,我尝试使用选择器并以设定的时间间隔执行,我尝试重新构图,我尝试哭泣,但它总是在我尝试做任何事情时将图像移回原始位置。我无法拦截这些触摸并使它们变得有用。只移动 uiimageview 或做其他事情。
-
我试过 UITouchPhaseCancelled 和 UITouchPhaseEnded。我试过 [[self nextResponder] touchesBegan:touches withEvent:event];我试过[超级touchesbegan]。我现在有点抓稻草了。
-
3 天,没有一条评论。我想我不会再使用这个网站了。
标签: xcode uiimageview touchesbegan