在iPhone上点击手势选择图像

Zoh*_*aib 1 iphone cocoa-touch objective-c ios

如何在点击的手势上选择图像.我想添加另一个与我点击的图像相同的图像.如果我有3个图像,如果我已经点击了第2个,那么它将动态添加第4个图像,与第2个图像相同.

UIImage *image = [[info objectForKey:@"UIImagePickerControllerOriginalImage"] retain];

    UIView *holderView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, image.size.width/4, image.size.height/4)];
    UIImageView *imageview = [[UIImageView alloc] initWithFrame:[holderView frame]];


UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapped:)];
    [tapRecognizer setNumberOfTapsRequired:1];
    [tapRecognizer setDelegate:self];
    [holderView addGestureRecognizer:tapRecognizer];

-(void)tapped:(id)sender {

    [[[(UITapGestureRecognizer*)sender view] layer] removeAllAnimations];
    NSLog(@"Tapped");
    [self.view bringSubviewToFront:[(UITapGestureRecognizer*)sender view]];
    UIImageView *image = (UIImageView *)[(UITapGestureRecognizer*)sender view];
    [self.view addSubview:image];
}
Run Code Online (Sandbox Code Playgroud)

我正在使用[(UITapGestureRecognizer*)sender view]]这个观点.但我不能.在点击时,我想添加我拍摄的图像.

Mid*_* MP 5

问题在于您的tapped方法.当你写的时候,(UIImageView *)[(UITapGestureRecognizer*)sender view];你会得到同样的东西imageView,它的框架将与添加时相同.然后addSubview,您将使用它添加它.如果您这样做,它将被添加到之前添加的位置.

改变你的tapped喜好:

-(void)tapped:(id)sender
{
  [[[(UITapGestureRecognizer*)sender view] layer] removeAllAnimations];
  UIImageView *imgView = (UIImageView *)[(UITapGestureRecognizer*)sender view];
  UIImageView *imageview = [[UIImageView alloc] initWithFrame:yourFrame]; //Set the next frame for the image view
  imageView.image = imgView.image;
  [self.view addSubview:imageView];
  [imageView release];
  imageView = nil;
}
Run Code Online (Sandbox Code Playgroud)

还要将手势添加到UIImageView,如:

[imageview addGestureRecognizer:tapRecognizer]; 不是UIView.

还设置 imageview.userInteractionEnabled = YES;