Mam obrazu, który chcę załadować do widoku obrazu i ustawić minimumZoomScale, jak również zoomScale do aspectFill jak skali, obliczyć w następujący sposób:Obliczanie minimumZoomScale z UIScrollView
// configure the map image scroll view
iImageSize = CGSizeMake(iImageView.bounds.size.width, iImageView.bounds.size.height);
iScrollView.minimumZoomScale = iScrollView.bounds.size.height/iImageSize.height;
iScrollView.maximumZoomScale = 2;
iScrollView.zoomScale = iScrollView.minimumZoomScale;
iScrollView.contentOffset = CGPointMake(0, 0);
iScrollView.clipsToBounds = YES;
Rozmiar iScrollView wynosi 450 x 320 pikseli, a format iImageSize to 1600 x 1960 pikseli.
Ręczne wykonywanie matematyki minimalZoomScale: 450/1960 = 0.22959184. System określa zamiast tego 0.234693885 (???).
Ale aby okno zmieściło się w przestrzeni 450 pikseli, obie liczby nie działają (!!!). Próbowałem ręcznie i okazało się, że 0.207 to odpowiednia liczba (przekładałaby się na wysokość obrazu 2174 PD lub na inną wysokość UIScrollView równą 406 pikseli).
Dla informacji: ekran UIScrollView jest 450 pikseli, a mianowicie 480px minus stan wysokość bar (10), minus wysokość UITabBar (20)
Wszelkie wskazówki na temat tego złego zachowania?
jaką się spotkałem, że dobrze. Ustawię wartość minimalnaZoomScale na pewną wartość, która automatycznie dostosowuje się w pewnym momencie. Dopasowanie jest jednak mniej lub bardziej niezauważalne, po prostu zostawiłem je i dodałem po prostu ten wiersz scrollview.zoomScale = scrollview.minimumZoomScale; aby upewnić się, że wszystko jest zsynchronizowane. – Altealice