2012-06-23 49 views
2

Bellow是我的didFinishPickingMediaWithInfo方法,我知道我有很多不必要的代碼,保留,發佈等等......但這是我能夠使它工作的方式,我害怕破壞它試圖優化它。UIImagePickerController didFinishPickingMediaWithInfo

任何人都可以幫助我脫掉不必要的東西,並有此方法清潔?

此外,我有一個視圖控制器,將加載4張照片(相機膠捲或相機),並在第二或第三張照片選擇後,應用程序崩潰或至少,我得到了下面的警報之一。我做錯了什麼?謝謝!

-2012-06-23 10:54:07.399 LookdoDia [6525:707]收到內存警告。

-wait_fences:未能收到回覆:10004003

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { 

    [self dismissModalViewControllerAnimated:YES]; 

    UIImage *img = [info objectForKey:UIImagePickerControllerEditedImage]; 
    if(!img) img = [info objectForKey:UIImagePickerControllerOriginalImage]; 

    uiimvImagem.image = [img retain]; 
    uiimvImagem.alpha = 0; 
    UIImageView *tempImageView = [[UIImageView alloc] initWithImage:img]; 
    self.uiimvImagem = [tempImageView retain]; 
    [tempImageView release]; 

    CGRect frame = uiimvImagem.frame; 
    frame.size.width = 359; 
    frame.size.height = img.size.height/(img.size.width/359); 
    uiimvImagem.frame = frame; 

    uisv1.showsVerticalScrollIndicator = NO; 
    uisv1.showsHorizontalScrollIndicator = NO; 
    uisv1.contentSize = CGSizeMake(uiimvImagem.frame.size.width, uiimvImagem.frame.size.height); 
    uisv1.maximumZoomScale = 3.0; 
    uisv1.minimumZoomScale = 0.8; 
    uisv1.clipsToBounds = YES; 
    uisv1.delegate = self; 

    [uisv1 addSubview:uiimvImagem]; 

    [img release]; 

} 

回答

6
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { 

    UIImage *img = [info objectForKey:UIImagePickerControllerEditedImage]; 
    if(!img) img = [info objectForKey:UIImagePickerControllerOriginalImage]; 

    uiimvImagem.image = img; //why bother? 
    uiimvImagem.alpha = 0; //why bother? 
    UIImageView *tempImageView = [[UIImageView alloc] initWithImage:img]; 
    self.uiimvImagem = tempImageView; //Make sure your self.uiimvImagem is a retained property! Also, don't forget to nil it out in your dealloc method 
    [tempImageView release]; 

    CGRect frame = uiimvImagem.frame; 
    frame.size.width = 359; 
    frame.size.height = img.size.height/(img.size.width/359); 
    uiimvImagem.frame = frame; 

    uisv1.showsVerticalScrollIndicator = NO; 
    uisv1.showsHorizontalScrollIndicator = NO; 
    uisv1.contentSize = CGSizeMake(uiimvImagem.frame.size.width, uiimvImagem.frame.size.height); 
    uisv1.maximumZoomScale = 3.0; 
    uisv1.minimumZoomScale = 0.8; 
    uisv1.clipsToBounds = YES; 
    uisv1.delegate = self; 

    [uisv1 addSubview:uiimvImagem]; 

    [self dismissModalViewControllerAnimated:YES]; 

} 

這應該是一個好一點 - 雖然我不知道剩下的是如何連接起來(即財產申報和我m不確定在哪裏分配uisv1)。還有一些看起來不正確的東西 - 您將圖像分配給圖像視圖,但是隨後使用新分配的UIImageView運行整個過程。

相關問題