【问题标题】:UIImagePickerController does not load imageUIImagePickerController 不加载图像
【发布时间】:2013-01-05 03:11:07
【问题描述】:

这似乎是一个相对简单的问题,但它让我难住了。感谢您提供任何帮助/见解。

问题:

我的屏幕上有一个 UIImagePickerController 按钮,并希望最初加载自定义图像,直到用户从相机胶卷中选择图像(自定义图像只是一个 + 号)。但是 UIImagePickerController 按钮在用户第一次单击之前显示为空白。第一次单击后,它工作正常,但由于某种原因它没有使用默认图像进行初始化。我已经从控制器的 viewDidLoad 方法中粘贴了我的代码。

代码:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);  
NSString *documentsPath = [paths objectAtIndex:0];
NSString *filePath = [documentsPath stringByAppendingPathComponent:[self.detailItem cardName]];
filePath = [filePath stringByAppendingPathExtension:@"png"];
NSData *pngData = [NSData dataWithContentsOfFile:filePath];
imgPickerButton.imageView.image = [UIImage imageWithData:pngData];

那我做错了什么?感谢您提供任何见解,并提前感谢您的帮助。

【问题讨论】:

    标签: ios image uiimagepickercontroller


    【解决方案1】:

    调试它?

    //Your Code
    
    //Debug it with muscle
    NSLog(@"\n**** I Love Debug Statements! *****\ndocumentsPath: %@\n filePath: %@\ndetailItem: %@\ndefault image: %@", documentsPath, filePath, self.detailItem, imgPickerButton.imageView.image);
    

    我的猜测是,当您第一次尝试调用它时,您的“self.detailItem”为零...

    【讨论】:

    • 不 - 已经检查过了。它工作正常。它具有正确的文件名,并且如上所述,图像在用户第一次单击后加载。
    【解决方案2】:

    从图片上看,这是 tableview 的一部分吗?如果是这种情况,那么表格视图单元格会在您的上述代码之前加载

    【讨论】:

    • 它只是一个 UIButton - 请参阅原始注释。我已经上传了另一张图片来展示这个
    • 嗯,那么我想我看到了问题。
    • 初始设置图片需要做[imgPickerButton setImage: forState:]
    • 我在末尾添加了以下语句:[imgPickerButton setImage:[UIImage imageWithData:pngData] forState:UIControlStateNormal];它没有用。现在即使第一次点击图像也不会加载!
    • 嗯,有趣,应该可以。你确定那个“pngData”中有一个实际的图像吗?第一次点击后你使用什么代码?点击后用什么方法更新图片?
    【解决方案3】:

    好的,明白了!!我在 viewDidLoad 方法中为 UIButton 设置图像。这是绘制视图后调用的方法。因此默认图像直到第一次点击才会出现,此时 UIButton 被重绘。为了解决这个问题,我将代码移至 awakeFromNib 方法,瞧!它工作正常。默认图片加载流畅...

    【讨论】:

      猜你喜欢
      • 2011-12-11
      • 2016-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-30
      • 2011-04-13
      • 2014-04-06
      • 1970-01-01
      相关资源
      最近更新 更多