Как наклонить NSView по центру?

Как наклонить NSView относительно его центра?

let view = NSView(frame: frame)
self.view.addSubView(view)
view.frameCenterRotation = -3.0

Это наклоняется по происхождению, а не по центру.

Может ли кто-нибудь помочь мне в этом?


person Sheik_101    schedule 03.11.2016    source источник
comment
Я согласен. Этот .frameCenterRotation полностью вводит в заблуждение.   -  person Sentry.co    schedule 27.04.2017


Ответы (1)


CALAyer подход:

var transform = CGAffineTransform.identity
let radians:CGFloat = rotation / 180.0 * CGFloat.pi
transform = CGTransform.rotateAroundPoint(transform, radians,pivot)
view.layer?.setAffineTransform(transform)

Примечание 1: вы можете сделать это с помощью view.setBoundsOrigin(pivot) + view.rotate(byDegrees: rotate) (но вы должны принять во внимание, что если вы переворачиваете систему координат, вам нужно считай и это)

SideNote 2: использование CALayer также позволяет использовать анимацию в будущем.

person Sentry.co    schedule 27.04.2017