문제

몇 가지 기능을 설정했습니다.하지만 여기서 어디로 가야하는지 잃어 버렸습니다.이미지를 실제로 사용하는 방법을 알고 있으면 페이스 북으로 무엇을 해야할지 알아낼 수 있습니다.이미지를 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
}
}
.

도움이 되었습니까?

해결책

뷰 컨트롤러 에서이 버튼을 사용 하여이 버튼을 사용하여이를 호출했는데, 뷰 컨트롤러에 UIImageView를 추가하지 않으셨습니까?IT MyPhotoImageView 또는 그와 비슷한 다음 DidfinishPickingMediaWithInfo 메소드에서 다음 코드 행을 추가하십시오.

UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
.

myPhotoImageView.image = image;
.

이미지보기를 크기를 지정하여 Aspect가 멋지게 보이게합니다.

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;
.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top