2013-01-14 16 views
5

Próbuję utworzyć przeglądarkę obrazów, która zachowuje się dokładnie tak samo jak aplikacja Apples Photo. Ale teraz interesuje mnie tylko zachowanie jednego obrazu.UIScrollView z UIImageView wyśrodkowany obrót po powiększeniu?

Umieściłem UIImageView wewnątrz UIScrollView i udało mi się poradzić sobie prawie wszystko z jednym wyjątkiem, a to jest, gdy powiększam fragment obrazu (na przykład portret), a następnie obracam urządzenie w krajobrazie część wydaje się obracać nad lewym górnym rogiem zamiast środka.

Pozwól mi spróbować to zilustrować. To jest to, co mam teraz:

What I have

To co chciałbym się zdarzyć:

What I want

Zasadniczo uważam, że wiem, jak mogę to zrobić, ale wydaje się wiązać się z trochę więcej kodu niż prawdopodobnie zasługuje. Może brakuje mi jakiejś prostej własności, którą mógłbym ustawić, by uzyskać pożądane zachowanie.

Jakaś wskazówka, ktoś?

+1

Czy próbowałeś ustawić punkt środkowy do punktu środkowego widoku przy obrocie? Wygląda na to, że jest to dla mnie problem kotwiczący. Upewnij się, że 'UIImageView' jest zakotwiczony na górze * AND * na dole. Mam nadzieję, że pomaga! – msgambel

+0

Nie wiedziałem, że centrum nieruchomości spróbuje teraz. Z drugiej strony nie mogłem dowiedzieć się, jak zakotwiczyć UIImageView Widzę tylko, że warstwa UIImageView ma właściwość anchorPoint, która jest CGPoint, ale nie jestem tego pewien. –

+0

Zamierzałem zakotwiczyć go w stalówce. – msgambel

Odpowiedz

0
self.imageView.center = self.scrollView.center; 
+0

Gdzie to umieścisz? Próbowałem już na końcu layoutSubviews, ale działa to niezręcznie i jest OK tylko wtedy, gdy użytkownik przybliża martwego środka (ponieważ wywołania layoutSubviews są wywoływane przy każdej zmianie poziomu powiększenia, więc w rzeczywistości przeszkadza użytkownikowi, aby móc nawet powiększyć gdziekolwiek indziej). Prawdopodobnie nie jest to odpowiednie miejsce na to ... Być może imageView.center nie powinien być ustawiony na scrollView center, ale powiększać centrum regionu? ... Nie próbowałem jeszcze tego ... Jakieś sugestie? –

+0

scrollViewDidFinishingZooming maybe? Również tak, prawdopodobnie chcesz wyśrodkować go w powiększonym regionie. –

+0

próbował. Z jakiegoś powodu nie działa ... Wydaje się, że to logiczne miejsce. Nie wiem, dlaczego to nie działa ... –

0

zrobić zestaw [imgView setContentMode: UIViewContentModeScaleAspectFit];

Powiązane problemy