0

私はいくつかの機能を設定しています。しかし、私はここからどこへ行くべきか迷っています。画像を実際に使用する方法がわかれば、facebook をどうするかを理解できるでしょう。画像を NSDictionary に保存してから、別のビュー コントローラーにリダイレクトしようとしましたが、imagePickerController メソッド内からリダイレクトすることはできません。カメラロールから選択した画像を使用する方法を知っている人はいますか?

私の次のアイデアは、それを NSDictionary に保存し、ステートメントをチェックして NSdictionary の値が変更されたかどうかを確認することでしたが、それはまったく効率的な方法ではありません。

提供された回答を含めるために以下を編集しましたが、何も起こらず、画像が表示されません。私は何が欠けていますか?

- (void) useCameraRoll
{
if ([UIImagePickerController isSourceTypeAvailable:
     UIImagePickerControllerSourceTypeSavedPhotosAlbum])
{
    UIImagePickerController *imagePicker =
    [[UIImagePickerController alloc] init];
    imagePicker.delegate = self;
    imagePicker.sourceType =
    UIImagePickerControllerSourceTypePhotoLibrary;
    imagePicker.mediaTypes = [NSArray arrayWithObjects:
                              (NSString *) kUTTypeImage,
                              nil];
    imagePicker.allowsEditing = NO;
    [self presentModalViewController:imagePicker animated:YES];
    [imagePicker release];
    newMedia = NO;
}
}

-(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];


    NSLog(@"image:%@",image);


    displayPhoto.image = image;
    [displayPhoto setFrame:CGRectMake(0, 0, 320, 480)];
    [[self view] addSubview:displayPhoto];

}
else if ([mediaType isEqualToString:(NSString *)kUTTypeMovie])
{
    // Code here to support video if enabled
}
}
4

1 に答える 1

1

作成したボタンを使用してView Controllerからこれを呼び出したと仮定すると、UIImageViewをView Controllerに追加してみませんか? それを myPhotoImageView などと呼び、didFinishPickingMediaWithInfo メソッドで、次のコード行を後に追加します。

UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];

なので

myPhotoImageView.image = image;

アスペクトが見栄えがするように画像ビューのサイズを変更するには、これを行います。

CGSize size = image.size;
CGRect photoFrame;
if (size.width > size.height)
{
    // Landscape
    CGFloat scaleFactor = 320 / size.width;
    photoFrame = CGRectMake(0, 0, 320, size.height*scaleFactor);
}
else
{
    // Portrait
    CGFloat scaleFactor = 320 / size.height;
    photoFrame = CGRectMake(0, 0, size.width*scaleFactor, 320);
}
myPhotoImageView.frame = photoFrame;
于 2012-10-02T08:33:18.240 に答える