2014-02-16 67 views
0

我的代碼那樣:我用CGAffineTransformMakeRotation以旋轉的標籤,爲什麼只有文本旋轉

[label2 setTransform:CGAffineTransformMakeRotation(-M_PI/2)]; 

循環之前一樣遵循

enter image description here

enter image description here旋轉後

任何人都可以告訴我爲什麼,謝謝?

+0

你是如何繪製綠色的矩形?它只是文本字段的背景顏色?如果是這樣,那麼它可能繪圖正確。更改轉換不會轉換其容器內視圖的邊界矩形 - 只能在視圖內繪製。如果你想改變視圖的框架,你需要手動完成。 – user1118321

+0

@ user1118321先謝謝。如果是這樣,我怎樣才能旋轉標籤框架的任何角度? – Dracuuula

+0

@Dracuuula這裏角度以弧度表示,只需設置合適的值以進行旋轉,並且如果需要,您可以執行轉換以標記超級視圖 – sage444

回答

0

你可以做這樣的事情:

-(NSPoint)rotatePoint:(NSPoint)inPt 
      aroundPoint:(NSPoint)center 
      withAngle:(double)radians 
{ 
    NSPoint temp = {inPt.x - center.x, inPt.y - center.y}; 
    double sinAngle = sin(radians); 
    double cosAngle = cos(radians); 
    NSPoint result; 
    result.x = temp.x * cosAngle - temp.y * sinAngle; 
    result.y = temp.x * sinAngle + temp.y * cosAngle; 

    result.x += center.x; 
    result.y += center.y; 
} 

然後調用上述方法的4個角你旋轉視圖的框架,而框架設置爲新值。

+0

我明白你說的是什麼,但是有沒有API設置框架與4角的價值? – Dracuuula

+0

我不這麼認爲。您可以轉換4個點,然後取x和y座標的最小值和最大值,然後使用這些值創建新的矩形。 – user1118321