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を使用している場合は、InterfaceBuilderからのリンクを忘れている可能性があります。

于 2012-08-20T19:26:46.420 に答える