UIImageView in UIScrollView: Mein Favorit

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

Aufgrund der Corona-Krise: Die Veröffentlichung von Stellenangeboten und -gesuchen ist bis 31.12.2020 kostenfrei. Das beinhaltet auch Angebote und Gesuche von und für Freischaffende und Selbstständige.

  • UIImageView in UIScrollView: Mein Favorit

    Neu

    Moin zusammen,

    keine Frage, sondern wieder ein Thema, um jemandem potentielles Suchen zu ersparen:

    Immer mal wieder gibt es die Aufgabe, ein Bild scroll- und zoombar anzuzeigen. Der grobe Ansatz ist klar: UIImage in eine UIImageView packen, diese als Content in eine UIScrollView und dann beginnt - zumindest für mich - das Elend. Bei Device-Rotationen soll das Bild um den sichtbaren Mittelpunkt drehen, beim Herauszoomen die Positionierung stimmen, Rein- / Rauszoomen per Tap unterstützt werden ... Es wird an mir liegen, aber ich habe bisher nicht eine Implementierung hinbekommen, mit der ich wirklich zufrieden war. Der letzte Ansatz - für einen iOS QuickLook-Provider - nutzte layoutSubviews für Frame-Berechnungen, aber Rotationen sahen nie smooth aus.

    Gestern hatte ich wieder diese Aufgabenstellung, diesmal für Previews im Rahmen von iOS13-Kontextmenüs und ich habe etwas intensiver recherchiert. Es gibt endlose Ansätze im Netz, aber einer wecke mein Interesse: ISVImageScrollView von Yurii Kupratsevych nutzt einen m. E. sehr eleganten Weg, die UIImageView zu skalieren und positionieren. Per KVO beobachtet er Bound-Changes, skaliert dann das Image mittels Transformation und setzt einen neuen Content-Offset. Das Ganze implementiert sich simpel und funktioniert sehr sauber. Ich habe eine entsprechende View und ihren Controller leicht modifiziert (jeder hat eben seinen Programmierstil) und mit entsprechendem Copyright-Vermerk eingebunden.

    Vielleicht für viele von Euch ein alter Hut oder langweilig, aber ich bin echt neidisch, nicht auf den KVO-Ansatz gekommen zu sein ... Danke, Yurii... :)

    Mattes
    Diese Seite bleibt aus technischen Gründen unbedruckt.

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