Ich versuche, eine Benutzeroberfläche für das Zuschneiden von Bildern in iphone OS zu entwickeln und vermute, dass ich die Dinge auf die harte Tour angehe. Mein Ziel ist ziemlich genau das, was das Tapbots-Duo mit Pastebot gemacht hat. In dieser App wird das Quellbild ausgeblendet, aber eine bewegliche und größenveränderbare Zuschneideansicht bereitgestellt, und das Bild, das man zuschneidet, befindet sich in einer zoombare Scrollansicht; wenn man die Größe oder das zugrunde liegende Bild verschiebt, passt sich die Zuschneideansicht entsprechend an.
Ich habe ein zusammengesetztes Bild erstellt, das einen Eindruck von dem Design vermittelt, das ich anstrebe, zusammen mit der Art und Weise, wie ich gegenwärtig meine Ansichtshierarchie eingerichtet habe. Alt-Text http://grab.by/3TN4
Ich habe mit folgendem Ansatz begonnen: UIImageView mit dem zu beschneidenden Bild befindet sich in einem Scrollview, ein einfaches UIView mit schwarzer Füllung und geeigneter Transparenz/Alpha-Einstellung wird vor dem Imageview hinzugefügt. Ich verwende dann eine benutzerdefinierte UIView, die ein Geschwister der scrollview auf einer höheren Ebene ist, die die drawRect: Methode implementiert und zum größten Teil ruft CGImageCreateWithImageInRect, um den Teil des Bildes Bitmap, die die Position der Beschneidung Ansicht übereinstimmt und zeichnet, dass der CGContext zu erhalten.
in der Viewcontroller ich bin mit der UIScrollViewDelegate-Methoden zu verfolgen Scrollen und übergeben diese Änderungen an die benutzerdefinierte Beschneidung UIView, so dass es synchron mit dem Scroll contentOffset bleibt. Das viel ist schließlich arbeiten. Aber versuchen, synchron zu halten, wie die scrollview zoomScale Änderungen ist, wenn ich dachte, ich sollte um Hilfe bitten.
Ich suche nach Vorschlägen oder Ratschlägen. Mein anfänglicher Ansatz scheint einfach mehr Arbeit zu sein, als erforderlich ist.
Könnte dies mit einer Maskierungsebene in der ImageView geschehen? Und wenn ja, wie würde ich die Nachverfolgung für das Verschieben und Ändern der Größe des Zuschneidebereichs einrichten? Meine Erfahrung mit Ebenen ist nicht gleich null, aber bisher sehr begrenzt.