Position in einer ScrollView nach dem Zoom ermitteln

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

  • Position in einer ScrollView nach dem Zoom ermitteln

    Hallo,

    die Vorgabe für eine App für das iPad ist, in einer ScrollView Objekte abzulegen und dabei zu prüfen, ob sie beim Drop bestimmte andere Views berühren.
    Dazu soll man das auch zoomen können.

    Ich habe also eine UIScrollView, mit der ich nicht nur zoomen, sondern auch scrollen kann.
    Weil ich viele Objekte darin haben kann, habe ich für das Zoomen erst eine UIView(dropContainer) eingefügt und alle anderen Views werden in diese View eingefügt.
    Klappt alles auch super.

    Was mich jetzt irritiert, ist das dauernde Umrechnen, sobald ich zoome.
    Ich bestimme die Position so:

    Quellcode

    1. CGPoint locationInDropzoneView = [gestureRecognizer locationInView:dropzoneScroller];

    Wenn ich aber z.B. schon eine zoomScale von 2 habe, muss ich erst den CGPoint mit dem Faktor 1/2 umrechnen, damit das Objet auch dort angezeigt wird, wo ich es fallen lasse.
    Auch wenn ich über einen Longclick ein UIActionSheet erstelle, das auf das Objekt zeigen soll, muss ich erst mit zoomScale den Frame (Origin und Size) des Objektes multiplizieren.

    Quellcode

    1. CGRect itemFrame = [self scaledRect:item.view.frame withFactor:dropzoneScroller.zoomScale];
    2. [actionSheet showFromRect:itemFrame inView:item.view animated:YES];


    Geht das nicht eleganter?

    Denen, die mir helfen können, schon mal vielen Dank vorab und allen anderen ein schönes Wochenende ! :rolleyes: