4 Stimmen

zoomToRect tut nichts, wenn Ihr UIScrollView bereits auf dieser Zoomstufe ist

Ich glaube, ich habe einen Fehler in UIScrollView gefunden, aber ich möchte überprüfen, ob andere Leute dasselbe beobachten und ob es ein erwartetes Verhalten ist.

Ich habe eine UIScrollView und versuche, festzulegen, was es mit zoomToRect betrachtet. Das funktioniert gut. Wenn ich dann ziehen Sie die Ansicht, so dass es anderswo suchen und dann die zoomToRect mit den gleichen Werten auslösen es tut nichts. Der zoomToRect-Befehl tut nur etwas, wenn die zoomScale angepasst werden muss, wenn ein Schwenken alles ist, was benötigt wird, sitzt die Ansicht einfach still. Da ein Benutzer Pinch zu vergrößern oder verkleinern konnte, war ich nur hoffen, zoomToRect zu verwenden und nicht zu überprüfen, die zoomLevels unterschiedlich sein würde.

Hat noch jemand diese Erfahrung gemacht? Sollte es so passieren oder ist es ein Fehler?

***Wie gewünscht Code hinzufügen

Erster Aufruf von zoomToRect

[myScrollView zoomToRect:zoomToRect animated:YES];

Die Ansicht wurde korrekt auf den gewünschten Punkt in der UIScrollView ausgerichtet

Lassen Sie nun den Benutzer auf dem Bildschirm ziehen und den Punkt verschieben, auf den die UIScrollView schaut. Es wird nicht gezoomt, sondern nur geschwenkt.

Rufen Sie nun zoomToRect erneut auf, mit demselben Rect

[myScrollView zoomToRect:zoomToRect animated:YES];

Nichts passiert.

3voto

Craig Punkte 7953

Apple hat gesagt, dass dies ein bekannter Fehler mit UIScrollView ist und in einer zukünftigen Version behoben wird.

https://devforums.apple.com/message/158712#158712

In der Zwischenzeit habe ich das Problem wie folgt gelöst

float zoomBefore = myScrollView.zoomScale;
[myScrollView zoomToRect:zoomToRect animated:YES];
float zoomAfter = myScrollView.zoomScale;
if (zoomBefore == zoomAfter)
{
    [myScrollView setContentOffset:imageCoords animated:YES];
}

-2voto

Shefali Soni Punkte 249

Standard maximumZoomScale ist 1,0. Es wird also nicht vergrößert, wenn wir doppelt klicken. einstellen maximumZoomScale wie diese:

myScrollView.maximumZoomScale = 5.0f;

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X