【问题标题】:UIButton doesn't change the imageUIButton 不会改变图像
【发布时间】:2012-02-11 22:47:14
【问题描述】:

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

}

有什么想法吗?谢谢!

【问题讨论】:

    标签: ios uibutton


    【解决方案1】:

    你检查过 self.imageButton 不是 nil 吗?

    您可能只是未能将 self.imageButton 插座绑定到您笔尖上的按钮(这很容易完成)。

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

    [自拍];

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

    【讨论】:

    • 是的,调用 [self view] 可以解决问题,但 self.imagebutton 不是 nil
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2020-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多