2010-04-21 15 views
6

Uso il seguente codice per caricare un'immagine in una vista di scorrimento. L'immagine viene sempre caricata con uno zoom del 100%. C'è un modo per impostarlo per caricare un altro livello di zoom, ad esempio .37?iphone uiscrollview e uiimageview - impostazione dello zoom iniziale

ho cercato scrollView.zoomScale = .37 ma didnt sembrano lavorare

UIImageView *tempImage = [[UIImageView alloc]initWithImage:[UIImage imageWithData:data]]; 
     self.imageView = tempImage; 

     scrollView.contentSize = CGSizeMake(imageView.frame.size.width , imageView.frame.size.height); 
     scrollView.maximumZoomScale = 1; 
     scrollView.minimumZoomScale = .37; 
     scrollView.clipsToBounds = YES; 
     scrollView.delegate = self; 

     [scrollView addSubview:imageView]; 

risposta

11

L'ho capito ... Stavo usando scrollView.zoomScale = 0.37; prima ho caricato il codice modificato dell'immagine e funziona benissimo.

UIImageView *tempImage = [[UIImageView alloc]initWithImage:[UIImage imageWithData:data]]; 
self.imageView = tempImage; 

scrollView.contentSize = CGSizeMake(imageView.frame.size.width , imageView.frame.size.height); 
scrollView.maximumZoomScale = 1; 
scrollView.minimumZoomScale = .37; 
scrollView.clipsToBounds = YES; 
scrollView.delegate = self; 
[scrollView addSubview:imageView]; 
scrollView.zoomScale = .37; 
3

C'è un zoomScale property che è possibile impostare.

+2

Ma prendere atto che, come Brodie4598 detto che questo dovrebbe essere fatto dopo che l'ImageView è stato aggiunto al ScrollView. –

+0

Si noti inoltre che 'viewForZoomingInScrollView: 'del delegato verrà chiamato quando si imposta la proprietà zoomScale, quindi è necessario assicurarsi che restituisca la vista corretta in quel punto. – Clafou

+0

È molto importante ciò che @paul_sns ha dichiarato. Stavo avendo uno strano comportamento con lo zoom della scrollview. Questo perché ho impostato l'immagine dopo aver impostato zoomscale. –

18

Lo zoom funziona solo quando si implementa il callback del delegato viewForZoomingInScrollView:.

-(UIView *) viewForZoomingInScrollView:(UIScrollView *)inScroll { 
    return imageView; 
} 
+1

Non lo sapevo e ha risolto il mio problema. Grazie mille! –

0

È necessario impostare lo zoom iniziale quando appare la visualizzazione e non quando ildisplaydidload funziona anche per esso.

+1

Non capisco cosa intendi. Spiega clealy. – Nejat

1

stavo affrontando lo stesso problema ..
ho usato il costruito nel metodo: scrollViewForImage

Ciò impostare lo zoom iniziale al livello 5

[self.scrollViewForImage setZoomScale:5 animated:YES];

codice per livello minimo di zoom

self.scrollViewForImage.minimumZoomScale=1;

codice per Livello massimo dello zoom

self.scrollViewForImage.maximumZoomScale=12.0;

Spero che questo vi aiuterà

Problemi correlati