NSScrollView setMagnification:centeredAtPoint:

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • hns schrieb:

    Hat da evtl. jemand ein funktionierendes Beispiel zum Ausprobieren/Nachvollziehen?
    Leider nicht, ich zoome scheinbar immer nur um den Mittelpunkt und kann daher direkt das magnification-Property setzen. Aber ich traue mich einfach mal, ganz dumm zu fragen: Du hast den Punkt im Koordinatensystem der Content-View angegeben bzw. in dieses umgewandelt?

    Mattes
    Diese Seite bleibt aus technischen Gründen unbedruckt.
  • scrollRectToVisible: habe ich gerade mal probiert - zeigt auch keine Wirkung. Sehr seltsam. Evtl. ist mein XIB defekt? Im Debugger sieht aber alles richtig aus...
    magnifyToFitRect: geht. Wobei es nur die Magnification verstellt. Der documentView ist entweder volle Höhe oder Breite (je nach Seitenverhältnis des NSScrollView). Aber es ist auch nicht irgendwie zentriert sondern immer links unten.
  • Ah, ich hab den Fehler gefunden. Sitzt wie immer vor dem Bildschirm und Tastatur.
    Ich hatte das "centeredAtPoint:" als "centerAtPoint:" missverstanden und erwartet, dass der Scrollview auch noch auf den Punkt zentriert wird. Vor allem wenn man die Magnification konstant lässt, sieht man dann natürlich keinen Effekt, egal welchen Punkt man angibt.
  • hns schrieb:

    Ich hatte das "centeredAtPoint:" als "centerAtPoint:" missverstanden und erwartet, dass der Scrollview auch noch auf den Punkt zentriert wird.
    Jetzt bin ich verwirrt: Ich hatte die Methode wie folgt verstanden: Die DocumentView wird so vergrößert / verkleinert, dass der Punkt der DocumentView, welcher vorher an der angegeben Stelle der ContentView lag, dort bleibt ... quasi wie ein Ankerpunkt:

    Apple schrieb:

    This method scales the content view such that the passed in point (in content view space) remains at the same screen location once the scaling is completed.
    Hab' ich das missverstanden?

    Mattes
    Diese Seite bleibt aus technischen Gründen unbedruckt.
  • Ja, Du hast es schneller richtig verstanden...
    Wenn man am iPhone "pinch zoom" mit 2 Fingern macht dann wäre der hier angegebene Punkt der Startpunk zwischen den zwei Fingern.
    Oder wenn man es mit 2 Fingern am Trackpad macht ist es der aktuelle Mauszeiger. Der bleibt wo er ist und rundherum wird alles verkleinert oder vergrößert. Wie ein dort festgepinntes Gummituch.
    Ich hatte dagegen missverstanden (oder heimlich erwartet), dass diese Methode einfach die Magnification und einen beliebigen neuen Mittelpunkt neu setzt. Also ggf. alles verschiebt so dass dieser Punkt hinterher in der Mitte vom ScrollView wäre...
    D.h. ich hatte erwartet, wenn man die magnification auf dem aktuellen Wert lässt, dass es den documentView trotzdem verschiebt. Aber genau das passiert nicht.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von hns ()