Ich habe UIScrollView
vor, und benutze es jetzt, und hatte noch nie ein Problem. Ich füge es jetzt zu einer alten App hinzu, und während es wie erwartet funktioniert (ich kann mir den Inhalt ansehen, mit dem Finger herumrollen, alle Grenzen und Größen sind richtig eingestellt, so dass kein leerer Platz im Inhalt ist, etc .), Ich kann einfach nicht scrollToRectVisible
arbeiten. Ich habe sogar den Anruf vereinfacht, so dass er lediglich auf die 0,0-Position bewegt:UIScrollView funktioniert wie erwartet, aber scrollRectToVisible: tut nichts
[scrollView scrollRectToVisible:CGRectMake(0, 0, 10, 10) animated:YES];
oder es 0200 verschieben:
[scrollView scrollRectToVisible:CGRectMake(0, 200, 10, 10) animated:YES];
Ich machte sogar eine schnelle App dies zu testen und ich kann bekomme scrollRectToVisible
um dort zu arbeiten, wie ich es erwarte. Aber in meiner alten App kann ich scheinbar nichts machen.
Ich kann die ScrollView mit setContentOffset:
scrollen, aber das ist nicht was ich will.
Diese scrollView und ihr Inhalt werden in der NIB von IB definiert und mit einem IBOutlet verwendet. Der einzige Code, den ich in meiner app bin mit dem Scroll zu handhaben ist
[scrollView setContentSize:CGSizeMake(scrollView.contentSize.width, imageView.frame.size.height)];
(I in vertikalen Scrollen nur daran interessiert bin nicht horizontal).
Hat jemand auf ein Problem wie folgt gestoßen?
Ich habe die scrollView Attribute in beiden Apps verglichen und sie sind identisch.
NACHTRAG:
Mein scrollViews Rahmen: 0,000000 0,000000 480,000000 179,000000
Mein scrollViews content ist: 0,000000 324,000000
Es wirkt immer noch wie die rect ich blättern möchte, ist bereits sichtbar und kein Scrollen ist erforderlich. Nicht sicher, ob das passiert. Das ist nur das Nötigste. Scheint, wie eine solche einfache Sache zu lösen ...
NACHTRAG # 2:
Dies ist, wie ich ohne scrollRectToVisible
tun mache:
CGPoint point = myRect.origin;
if (![clefScrollView pointInside:point withEvent:nil]) {
point.x = 0;
if (point.y > clefScrollView.contentSize.height - clefScrollView.bounds.size.height)
point.y = clefScrollView.contentSize.height - clefScrollView.bounds.size.height;
[clefScrollView setContentOffset:point animated: YES];
}
Alles andere über dieses Scrollview funktioniert wie erwartet, aber scrollRectToVisible
. WARUM?!? Irgendwelche wilden Vermutungen?
Danke! Ich habe auch etwas davon bekommen (ich stellte Höhe aber nicht Breite ein). –
Dies ist nicht ganz richtig - c.f. Orions Antwort unten (ich hatte eine Breite/Höhe ungleich null, es ist nicht '0', die das Problem verursacht ...) – Adam
Ich habe dies in ähnlicher Weise getan, aber scrollRectToVisible funktioniert immer noch nicht. Es funktioniert im Simulator aber nicht auf dem Gerät. Bitte helfen Sie. –