문제

사용자가 원을 그릴 수있는 nsview가 있습니다. 이 원은 nsbezierpaths의 배열로 저장되며 DrawRect :, 나는 배열을 통해 루프하고 호출합니다. -stroke 각 경로에서. NSView를 확대하고 출시하기 위해 버튼을 추가하려면 어떻게합니까? 뷰의 한계를 변경 하시겠습니까?

감사.

도움이 되었습니까?

해결책

당신의 견해를 보내십시오 scaleUnitSquareToSize: 메시지.

다른 팁

이 정보를 찾을 수도 있습니다.

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

이 문서의 코드를 사용하면 "스케일"속성을보기에 추가 할 수 있습니다.

위의 답변은 내 시나리오에서는 효과가 없었지만 솔루션으로 이끌었습니다.

@Peter의 답변에 대한 업데이트 된 링크가 도움이되었습니다. scaleUnitsquaretosize

축소를위한 두 가지 영혼을 찾았습니다.

  1. 수동으로 경계를 자릅니다
  2. 경계를 파기 scaleUnitSquareToSize

작은 테스트 프로젝트를 만들었습니다. 두 솔루션 모두 Github Repo에서 찾을 수 있습니다. boundsandframescroppingandscalling

경계 대 프레임을 이해하려면이 기사를 읽으십시오. 차이 가운데-프레임과 바운드.

신속한 파기 코드 :

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
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top