UIButton不会更改图像

时间:2012-02-11 22:47:14

标签: ios uibutton

我有一个带自定义样式和默认图像的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];

}

有什么想法吗?谢谢!

2 个答案:

答案 0 :(得分:1)

您是否检查过self.imageButton不是nil?

您可能只是无法将self.imageButton插座绑定到笔尖中的按钮(这很容易)。

或者正如基本位所示,当显示图像选择器时,视图(以及包括按钮在内的任何子视图)可能已被释放,因此在尝试操作按钮图像之前,您可能需要强制查看重新加载。如果是这种情况,请在设置图像之前调用此方法重新加载按钮:

[自我观点];

这可能看起来像什么都不做,但是view属性是一个惰性构造函数,所以如果它被卸载,调用它将再次从nib加载视图。

答案 1 :(得分:0)

您的代码看起来是正确的,您是否在UIImagePickerController打开时检查是否正在发布imageButton?