2010-06-23 4 views
0

사용자가 사진에서 이미지를 선택하고 기본보기의 배경으로 설정할 수 있기를 바랍니다.이미지를 UIView의 배경으로 설정하지만 올바르게 크기를 조정하는 방법은 무엇입니까?

이 내가 현재하고 있어요 무엇 : 속도가 약간 둔화되는이 방법에서 제외

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { 
    [picker dismissModalViewControllerAnimated:YES]; 

    UIImage *testimg = [info objectForKey:UIImagePickerControllerOriginalImage]; 

    NSArray * sysPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 

    filePath = [[NSString alloc] initWithFormat: @"%@/%@", [sysPaths objectAtIndex: 0], @"testimg.png"]; 
    if ([UIImagePNGRepresentation (testimg) writeToFile:filePath atomically:YES]) ; 

    self.backgroundColor= [[UIColor alloc] initWithPatternImage:[[UIImage alloc] initWithContentsOfFile: filePath]]; 


    } 

,이 위대한 작품! 한 가지 문제가 있습니다. 이미지를 선택하면 이미지의 크기가 올바르게 조정되지 않습니다. 이 문제를 어떻게 해결할 수 있을까요? 사전에

덕분에,

데이비드

+0

또한 이미 이미지가 있습니다. 장치의 파일 입출력은 느리므로 방금 쓴 이미지를 읽지 않고 이미 가지고있는 이미지를 사용하십시오. 메소드가 즉시 반환 될 수 있도록 다른 스레드에서 작성하는 것도 생각할 수 있습니다. 당신이 그것을하는 방식으로, 당신은 이미지가 압축되고, 쓰여지고, 다시 읽혀지고 다시 압축이 풀릴 때까지 기다려야 만합니다. 자연히 느린 느낌이납니다. :) –

답변

1

특정 contentMode 속성에있는 UIImageView에서보세요.

imageView.contentMode = UIViewContentModeScaleAspectFit;

+0

문제는 UIImage가 아니라 UIImageView를 사용하고 있습니다. 그것은 UIImage의 contentMode라는 속성을 가지고있는 것처럼 보이지 ... – bobbypage

+0

당신은보기에 UIImage를 표시해야합니다, 그보기를 찾아 속성을 찾아야합니다. – Gary

+0

그래서 코드와 심지어 IB를 통해 콘텐츠 모드를 변경하려고 시도했지만 차이점을 확인할 수 없었습니다. 내가 선택한 콘텐츠 모드가없는 한 동일한 문제가 계속 발생합니다. 나는 self.contentMode = UIViewContentModeScaleAspectFit을 사용하고있다. – bobbypage

관련 문제