Zooming in einem NSView
-
20-09-2019 - |
Frage
ich eine NSView haben, in dem der Benutzer Kreise ziehen kann. Diese Kreise sind als ein Array von NSBezierPaths gespeichert und in drawRect :, I-Schleife durch das Array und den Anruf -stroke
auf jedem der Pfade. Wie füge ich eine Schaltfläche in die und aus der NSView zu vergrößern? Ändern Sie einfach die Grenzen der Ansicht?
Danke.
Lösung
Senden Sie Ihre Ansicht eine scaleUnitSquareToSize:
Nachricht
Andere Tipps
Sie können auch diese Informationen bietet:
https://developer.apple.com/library/content /qa/qa1346/_index.html
Der Code in diesem Dokument können Sie eine „Skala“ Eigenschaft auf einen Blick hinzuzufügen.
Die oben genannten Antworten haben nicht funktioniert für mein Szenario aber führten mich zu einer Lösung.
Die aktualisierte Link zu @ Peter Antwort war hilfreich: scaleUnitSquareToSize
Ich habe zwei Soultions gefunden zum Zoomen:
- Cropping die Grenzen manuell
- Masstab die Grenzen mit
scaleUnitSquareToSize
Ich habe ein kleines Testprojekt erstellt. Beide Lösungen können auf meinem GitHub Repo zu finden: BoundsAndFramesCroppingAndScalling
Um zu verstehen, Grenzen vs Rahmen dieses SO Artikel zu lesen: Differenz-zwischen-the-Frame-und-die-Grenzen .
Swift Masstab Code:
let scaleSize = NSSize(width: 0.5, height: 0.5)
// 0.5 - Half the size
// 1.0 - No calling
// 2.0 - double the size , ... etc
myView?.scaleUnitSquare(to: scaleSize)
myView?.needsDisplay = true