我想在主视图的每个点击上动态创建UIImageView
,并且还希望通过手指移动来移动所有创建的UIImageView
。我已经成功动态创建每次触摸我的代码是下面:
-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [touches anyObject];
CGPoint pt = [touch locationInView:self.view];
imgView = [[[UIImageView alloc] initWithFrame:CGRectMake(pt.x,pt.y, 100, 100)] autorelease];
imgFilepath = [[NSBundle mainBundle] pathForResource:@"img" ofType:@"png"];
img = [[UIImage alloc] initWithContentsOfFile:imgFilepath];
imgView.tag=i;
[imgView setImage:img];
[img release];
[self.view addSubview:imgView];
}
现在我想通过手指移动来移动任何动态创建的UIImageView
。
感谢。
答案 0 :(得分:4)
在您创建它的方法中将UIImageView的userInteractionEnabled属性设置为yes(即您发布的方法):
imgView.userInteractionEnabled = YES;
那么你很可能需要子类化UIImageView并实现以下方法来移动图像视图:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event;
提示:在touchesMoved:等方法中,您需要跟踪用户手指移动的位置 - 在阅读了一些您最有可能最终使用-[UITouch locationInView:]
的文档后 - 您需要将坐标转换为图像视图的超视图,然后在这种情况下移动图像视图本身。
答案 1 :(得分:1)
在touchesBegan
中检测到您触及的imageView
。在touchesMoved
中移动选定的imageView
,将其中心设置为移动的触摸点。