0

我想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由手指运动动态创建的东西。谢谢。

4

2 回答 2

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:]——您需要将坐标转换为您的图像视图,然后在这种情况下移动图像视图本身。

于 2012-07-20T13:42:40.380 回答
1

touchesBegan检测imageView你触摸过的。通过touchesMoved将选定imageView对象的中心设置为移动的触摸点来移动选定对象。

于 2012-07-20T13:42:06.820 回答