2009-09-20 13 views
7

Próbując utworzyć obejście dla wyśrodkowania obrazu w UIScrollView i sprawić, aby zachowywał się tak jak aplikacja Zdjęcia firmy Apple, potrzebuję uzyskać bieżący poziom powiększenia i użyć tego numeru, aby obliczyć wielkość obrazu, który powinien być wstawiany przy każdym powiększeniu poziom.Jak mogę uzyskać bieżący poziom powiększenia w UIScrollView?

(Uwaga: zdaję sobie sprawę, że niektórzy programiści wyśrodkowują obraz w przewijanym widoku, wyśrodkowując obraz w UIView, który ma taki sam rozmiar jak przewijany widok, co nie daje dobrych wyników i staram się dowiedzieć, jak jabłko sprawiło, że działało w aplikacji zdjęć.)

Ktoś wie, jak uzyskać aktualny poziom powiększenia zawartości w UIScrollView?

Odpowiedz

9

W systemie OS 3.x istnieje właściwość o nazwie "zoomScale", która daje to, co chcesz. W wersji 2.x wierzę, że możesz spojrzeć bezpośrednio na transformację contentView, aby to uzyskać (ale to oczywiście nie jest "oficjalne").

+0

Próbuję: NSLog (@ "% d", myScrollView.zoomScale); w mojej metodzie scrollViewDidEndZooming, ale otrzymuje tylko "0". Co ja tu robię źle? Wiem, że możesz użyć zoomScale jako ustawiacza, ale czy działa także, aby uzyskać bieżącą skalę zoomu? – Jonah

13

Tak, dostałem odpowiedź na twój problem. Myślę, że powinieneś użyć tej metody w klasie scrollViewController.

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