当在UIImageView上点击时打开UIImagePicker

问题描述:

当用户点击UIImageview时,我需要允许用户从源类型的照相机或照片库添加照片。当在UIImageView上点击时打开UIImagePicker

我不想通过单击UIButton来呈现uiimagepicker控制器,我想让用户通过点击图像视图来添加它。

我该如何做到这一点?我是否应该添加按钮imageview,并且当点击发生时,用按钮照相机和照片库呈现动作表,并且当用户从动作表中选择2个按钮中的一个时,允许他将照片添加到uiimageview?

您仍然可以使用UIButton,只需将该按钮的视图作为所需的图像即可。

UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom]; 
btn.frame = CGRectMake(0,0,100,100); //edit for you own frame 
UIImage *img = [UIImage imageNamed:@"myimage.png"]; 
[button setImage:img forState:UIControlStateNormal]; 

这将允许您使用图像作为您的按钮。

+0

感谢您的答复。我不想为UIbutton设置图像。除了按钮,我可以设置图像让我们默认为addphoto.jpg图像视图,当我点击它时,动作表会弹出选择照片或选择照片的选项。那么应该使用用户拍摄的图像来更新图像视图。当imageview更新为新的图片时,图片上会出现一个“编辑照片”的标签,这样当我再次点击图片浏览时,会弹出操作表。如果没有选择,imageview应该有一个addemployee.jpg这是默认图像。 – jessy 2012-01-31 20:47:27

+0

我不明白为什么你不想使用按钮,它更容易,它是为什么构建的。但是说你可以使用手势识别器。这篇文章展示了一个使用捏的例子,但它是相同的过程http://*.com/questions/3907397/gesuturerecognizer-on-uiimageview – 2012-02-01 10:23:21

+0

你也可以让你的图像看到你喜欢的方式,但在顶部放置一个按钮将响应水龙头。 – 2012-02-01 10:24:52

@Amit Shah有正确的答案 - 你应该使用一个按钮。

但是,如果由于某种原因,你必须使用一个UIImageView(它听起来并不像你这样做) - 你也可以继承的UIImageView和重写的touchesBegan/touchesEnded方法:

http://developer.apple.com/library/ios/#documentation/uikit/reference/UIResponder_Class/Reference/Reference.html

+0

你说得对,我们可以按你说的方式进行。但我的要求就像我要求的方式。无论如何,我能够过来它。我已经添加了一个默认img imagevew并添加了guesture识别器。我想要的是当我点击它时,旧的需要用新的替换。我不甚至不得不添加触摸开始n触摸结束的方法。无论如何,再次感谢您的帮助。 – jessy 2012-02-01 15:04:28