我有一个带自定义样式和默认图像的UIButton。当我按下它时,我加载相机,当拍摄照片时,我想更改UIButton中的图像,但它不起作用。
我正在使用此代码:
- (void) imagePickerController: (UIImagePickerController *) picker
didFinishPickingMediaWithInfo: (NSDictionary *) info {
UIImage *originalImage, *imageToSave;
originalImage = (UIImage *) [info objectForKey:
UIImagePickerControllerOriginalImage];
imageToSave = originalImage;
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0ul);
dispatch_async(queue, ^{
UIImageWriteToSavedPhotosAlbum (imageToSave, nil, nil , nil);
});
[self.imageButton setImage:originalImage forState:UIControlStateNormal];
hasPhoto = YES;
[self dismissModalViewControllerAnimated: YES];
}
有什么想法吗?谢谢!
答案 0 :(得分:1)
您是否检查过self.imageButton不是nil?
您可能只是无法将self.imageButton插座绑定到笔尖中的按钮(这很容易)。
或者正如基本位所示,当显示图像选择器时,视图(以及包括按钮在内的任何子视图)可能已被释放,因此在尝试操作按钮图像之前,您可能需要强制查看重新加载。如果是这种情况,请在设置图像之前调用此方法重新加载按钮:
[自我观点];
这可能看起来像什么都不做,但是view属性是一个惰性构造函数,所以如果它被卸载,调用它将再次从nib加载视图。
答案 1 :(得分:0)
您的代码看起来是正确的,您是否在UIImagePickerController打开时检查是否正在发布imageButton?