【问题标题】:UIImagePickerController for multiple buttonsUIImagePickerController 用于多个按钮
【发布时间】:2012-11-26 21:17:12
【问题描述】:

我有 4 个 UIButtons 和 4 个 UIImgeViews,每个按钮都应该使用 UIImagePickerController 更改其 UIImageView 的图像。按钮 #1 应该改变 imageview #1 等等。一切都应该不同。 仅使用第一个按钮和图像视图即可正常工作,但我不确定如何将其应用于所有 4 个按钮。

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{

UIImage *image1 = [info objectForKey:UIImagePickerControllerOriginalImage];


NSData *data = UIImagePNGRepresentation(image1);
NSString *myGrabbedImage = @"myGrabbedImage.png";
NSArray *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentDirectory = [path objectAtIndex:0];
NSString *fullPathToFile = [documentDirectory stringByAppendingPathComponent:myGrabbedImage];

[data writeToFile:fullPathToFile atomically:YES];
[[self firstImageView]setImage:image1];


[self dismissViewControllerAnimated:YES completion:nil];

}

我知道这只会为第一个 imageView 设置一张图片,但我怎样才能为所有 4 个图片设置呢?

【问题讨论】:

  • 我一定是误解了这个问题。为什么答案不是[[self secondImageView]setImage:image1];等等?
  • 如果我这样做了,那么我选择的图片适用于所有 imageView 的
  • 那么,你想将什么图像应用到其他图像视图?
  • 按钮 #1 应该打开 imagepickercontroller 以便图片应该更改 imageview #1,依此类推。每一个都如此不同

标签: iphone objective-c xcode ios-simulator


【解决方案1】:

按钮按下的代码可以留下一个值来说明正在处理哪个按钮:

- (void) buttonPressed:(id)sender {
      imageViewBeingEdited = sender.imageView;
      // display image picker here
}

然后

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
    imageViewBeingEdited.image = [info objectForKey:UIImagePickerControllerOriginalImage];
    ...
}

【讨论】:

  • 好的,但是“imageViewBeingEdited”部分,是一个变量吗?它说我必须先声明它。
  • 是的,它是一个实例变量,特定于您在此处创建的对象类的实例。像这样声明它:@implementation MyClassName { UIImageView imageViewBeingEdited; } 在你正在编写的类的顶部。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-01-08
  • 2011-04-17
  • 1970-01-01
  • 1970-01-01
  • 2013-02-26
  • 1970-01-01
  • 2019-06-23
相关资源
最近更新 更多