Mam interesujący problem. Mam jeden UIScrollView i wewnątrz tylko jeden UIImageView z obrazem. Potrzebuję tego do powiększania i przesuwania. Ok. Po dotknięciu przycisku chcę zastąpić obraz w UIImageView (który jest w ramach UIScrollView, jak wspomniano) z następnym w linii.Jak poprawnie zastąpić obraz w UIImageView w UIScrollView na iOS
tej pory robiłem to tak:
self.imageView = nil;
self.imageView = [[UIImageView alloc] initWithImage:nextImage];
Dlatego, że ja zawsze ustawiony self.imageView
do zera jest to, że jeśli nie robić niż następnego obrazu jest skalowany lub powiększony jak poprzedni jeden był.
Ale nie sądzę, że to w porządku rozwiązanie dla wydajności pamięci.
Czy istnieje inny sposób ustawienia nowego obrazu w UIImageView z opcją "reset" do powiększania, skalowania, itp ...?
UPDATE: Kod, który nadal nie działa:
[self.scrollView setZoomScale:1.0];
[self.imageView setImage:photoImage];
[self.imageView setFrame:rect];
[self.scrollView setContentSize:[self.imageView frame].size];
CGFloat minZoomScale = [self.scrollView frame].size.width/[self.imageView frame].size.width;
if (minZoomScale < [self.scrollView frame].size.height/[self.imageView frame].size.height) {
minZoomScale = [self.scrollView frame].size.height/[self.imageView frame].size.height;
}
[self.scrollView setMinimumZoomScale:minZoomScale];
[self.scrollView setZoomScale:[self.scrollView minimumZoomScale]];
UPDATE 2 Tylko zorientowali się, co robię źle. Nie zresetowałem minimalnej skali zoomu.
[self.scrollView setMinimumZoomScale:1.0];
Teraz działa!
To jest dobrym rozwiązaniem. Dzięki! –
W rzeczywistości to nie działa. UIImageView pobiera rozmiar z poprzedniego obrazu, który jest nieprawidłowy. Jak mogę zresetować UIImageView? –
Czy próbowałeś ustawić obraz po ustawieniu "zoomScale" na 1? – Ilanchezhian