2012-05-12 51 views
0

我使用旋轉的的NSView:旋轉的的NSView並獲得它的角點

setFrameRotation: 

其中繞其左下角的視圖。圍繞中心點旋轉視圖的最佳方式是什麼?

此外,我想要在角落的超視圖中獲得點。使用:

view.frame.origin 

只是給我,我將其旋轉前的角落。一旦旋轉後,我如何獲得其角落的實際點?

由於提前,本

回答

1

要獲取有關幀的中心的有效輪換,你必須翻譯框的原點。

此外,當然view.frame.origin旋轉它之前給出了原點。旋轉後也會給出原點,因爲旋轉是在原點附近。起源不動。如果你把原點翻譯成圍繞中心旋轉,你就會知道新的原點。

要獲得其他角落,請使用[view convertPoint:pt toView:view.superview],其中pt是視圖座標系中的每個角點。例如。 NSMakePoint(NSMaxX([view bounds]), NSMinY([view bounds]))

你實際上可以使用這種技術來獲得你想要的翻譯。計算視圖的所需中心,或只記錄當前中心是否在你想要的位置。然後旋轉視圖。使用-convertPoint:toView:獲取中心的新位置。然後通過新中心和所需中心之間的差異來轉換原點。

+0

你如何翻譯出處? – strange

+0

' - [NSView setFrameOrigin:]' –