Domanda

Ho un NSView in cui l'utente può disegnare cerchi. Questi cerchi sono memorizzate come una matrice di NSBezierPaths, in drawRect :, ciclo I attraverso la matrice e chiamare -stroke su ciascuno dei percorsi. Come faccio ad aggiungere un pulsante per ingrandire e ridurre la NSView? Basta cambiare i confini della vista?

Grazie.

È stato utile?

Soluzione

Altri suggerimenti

Si potrebbe anche trovare questa informativa:

https://developer.apple.com/library/content /qa/qa1346/_index.html

Il codice in questo documento consente di aggiungere una proprietà "scala" per una vista.

Le risposte di cui sopra non ha funzionato per il mio scenario, ma mi ha portato a una soluzione.

Il link aggiornato a @ risposta di Pietro è stato utile: scaleUnitSquareToSize

Ho trovato due soultions per lo zoom:

  1. Ritaglio i limiti manualmente
  2. scalling i limiti con scaleUnitSquareToSize

Ho creato un piccolo progetto di prova. Entrambe le soluzioni possono essere trovate sul mio repo GitHub: BoundsAndFramesCroppingAndScalling

Per capire limiti vs telai leggere questo articolo SO: differenza-tra-il-telaio-e-il-limiti .

Codice scalling Swift:

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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top