2016-05-18 14 views
1

Ich arbeite an einer wirklich einfachen Zeichen-App für Mac in Cocoa und spiele mit NSScrollViews, um einen Zeichenbereich zu erstellen, der die Größe dynamisch ändert, aber nicht Es scheint zu funktionieren.So erstellen Sie einen Schwenk- und Zoombereich (wie Photoshop) in Cocoa

Ich möchte eine NSView haben, die in der Größe wächst, wenn ich scroll (um) und auch vergrößert, wenn ich verkleinere. Natürlich würde ich eine maximale Größe für die Leinwand festlegen, um den Speicher zu begrenzen, aber ich habe keine Ahnung, wo ich anfangen soll.

Irgendwelche Gedanken? Auch, Irgendwelche Ideen für iOS oder UIKit Lösung? Ich kann mich nach Bedarf anpassen.

Antwort

1

Die Verwendung einer ScrollView oder UIScrollView würde jedes Mal, wenn ich scrollte, eine Vergrößerung der Größe erfordern und meine App unglaublich verlangsamen. Ich schaute auf einen gekachelten Scrollview, aber dies erzeugte auch nur einen massiven Scrollview.

Was ich getan habe, war eine "Leinwand" -Ansicht zu erstellen, die dann vom Benutzer manipuliert werden konnte. Wenn sie zoomen wollten, wurde diese "Leinwand" einfach skaliert, um die Illusion des Zoomens zu erzeugen. Wenn sie sich um den unendlichen Arbeitsbereich bewegen wollten, bewegte sich die Leinwand einfach, um die Illusion des Schwenkens zu erzeugen.

Im Grunde schuf ich die Illusion einer unendlichen Leinwand, indem ich dem Benutzer die Möglichkeit gab, das Objekt von Interesse in einem endlichen NSView zu bewegen, mit der Fähigkeit, es vom Bildschirm zu verschieben und wieder auf den Bildschirm zu bringen.

0

Scheint, Sie suchen ein Tutorial für die Verwendung UIScrollView oder NSScrollView hier! (Sie würden es besser bei Google tun)

Um UIScrollView zu verwenden, müssen Sie sich an UIScrollViewDelegate Protokoll anpassen dann erforderliche Funktionen implementieren. Sie finden eine detaillierte Anleitung here.

+0

Yup. Ich weiß alles über Scrollviews und Delegierte, daher frage ich hier. – monotreme