จะเอียง 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: การหมุน) (แต่คุณต้องคำนึงว่า หากคุณพลิกระบบพิกัด คุณจะต้อง ก็พิจารณาเช่นกัน)

SideNote 2: การใช้ CALayer ยังเปิดโอกาสให้มีภาพเคลื่อนไหวในอนาคตอีกด้วย

person Sentry.co    schedule 27.04.2017