Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios UIButton不';不要改变形象_Ios_Uibutton - Fatal编程技术网

Ios UIButton不';不要改变形象

Ios UIButton不';不要改变形象,ios,uibutton,Ios,Uibutton,我有一个自定义样式的UIButton和一个默认图像。当我按下它时,我加载相机,当拍摄照片时,我想更改UIButton中的图像,但它不起作用 我正在使用以下代码: - (void) imagePickerController: (UIImagePickerController *) picker didFinishPickingMediaWithInfo: (NSDictionary *) info { UIImage *originalImage, *imageToSave;

我有一个自定义样式的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];

}

有什么想法吗?谢谢

您的代码看起来正确,是否检查了UIImagePickerController打开时是否释放imageButton?

您的代码看起来正确,是否检查了UIImagePickerController打开时是否释放imageButton?

是否检查了self.imageButton不是零

您可能只是未能将self.imageButton插座绑定到nib中的按钮(这很容易做到)

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

[自我观点]


这可能看起来好像什么也不做,但view属性是一个惰性构造函数,因此调用它将在卸载视图时再次从nib加载视图。

是否检查self.imageButton是否为nil

您可能只是未能将self.imageButton插座绑定到nib中的按钮(这很容易做到)

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

[自我观点]


这可能看起来好像什么也不做,但view属性是一个惰性构造函数,因此调用它将在卸载视图时再次从nib加载视图。

是,调用[self view]解决问题,但self.imagebutton不是nil是,调用[self view]解决问题,但self.imagebutton不是nil