0

我正在尝试显示UIImageView使用 [self.view addSubview:imageView];但没有任何反应。imageView不是空的。我使用以下代码从图像库中分配图像;

-(void)imagePickerController:(UIImagePickerController *)picker
didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    NSString *mediaType = [info
                           objectForKey:UIImagePickerControllerMediaType];
    [self dismissModalViewControllerAnimated:YES];
    if ([mediaType isEqualToString:(NSString *)kUTTypeImage]) {
        UIImage *image = [info 
                          objectForKey:UIImagePickerControllerOriginalImage];

        [imageView setImage:image];
        if (newMedia)
            UIImageWriteToSavedPhotosAlbum(image, 
                                           self,
                                           @selector(image:finishedSavingWithError:contextInfo:),
                                           nil);
    }
}

为什么它不起作用?

imageView 创建如下;

UIImageView *imageView;
@property (nonatomic, retain) IBOutlet UIImageView *imageView;
@synthesize imageView;
4

1 回答 1

1

声明和综合属性imageView不会创建UIImageView. 因此,imageViewnil以下行中:

[imageView setImage:image];

UIImageView在使用它之前,您必须在某个时候创建​​一个实例。例如:

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    //...
    UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];

    self.imageView = [[UIImageView alloc] initWithFrame:(CGRectMake(100, 100, 100, 100)];
    self.imageView.image = image;
    [self.view addSubview:self.imageView];

    //...
}

imageView或者,如果您正在使用它,您可能忘记从 Interface Builder链接到它。

于 2012-08-20T19:26:46.420 回答