1

这似乎是一个相对简单的问题,但它让我难住了。任何帮助/见解表示赞赏。

问题:

我的屏幕上有一个 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];

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

这说明了故事板中屏幕的设计视图

在用户单击按钮之前视图如何显示的屏幕截图

4

3 回答 3

0

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

于 2013-01-05T04:08:59.757 回答
0

调试吗?

//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”为零......

于 2013-01-05T03:19:59.483 回答
0

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

于 2013-01-05T03:26:05.767 回答