2009-09-20 2 views
7

Nel tentativo di creare una soluzione alternativa per centrare un'immagine in un UIScrollView e farla funzionare come l'app Foto di Apple, ho bisogno di ottenere il livello di zoom corrente e utilizzare il numero per calcolare la quantità che l'immagine deve essere inserita in ogni zoom livello.Come posso ottenere il livello di zoom corrente in un UIScrollView?

(Nota: alcuni programmatori stanno centrando un'immagine in una vista a scorrimento centrando l'immagine in un UIView che ha le stesse dimensioni della vista a scorrimento. Ciò non dà buoni risultati e sto cercando di scoprire come apple ha funzionato nell'app foto)

Quindi, qualcuno sa come ottenere il livello di zoom corrente del contenuto in un UIScrollView?

risposta

9

In OS 3.x, c'è una proprietà chiamata "zoomScale" che ti darà quello che vuoi. In 2.x, credo che si possa guardare direttamente alla trasformazione di contentView per ottenerlo (ma ovviamente non è "ufficiale").

+0

Sto provando: NSLog (@ "% d", myScrollView.zoomScale); nel mio metodo scrollViewDidEndZooming, ma sta ottenendo solo "0". Cosa sto facendo di sbagliato qui? So che puoi usare zoomScale come setter, ma è anche utile ottenere la scala dello zoom corrente? – Jonah

13

Sì, ho avuto la risposta del problema. Penso che dovresti usare questo metodo nella tua classe scrollViewController.

- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(float)scale{ 
    NSLog(@"Zoomscale %f",scale); 
     NSLog(@"Zoom End!"); 
}