2012-12-11 91 views
0

我正在寫一個自定義NSView,需要通過在繪製它們之前應用NSAffineTransformation來動畫它的子視圖。手動繪製NSView的子視圖

我尋找,吸引視圖的子視圖,所以我可以在這樣的方式重寫它 的方法:

-(void)drawSubview:(NSView*)subview { 
    [[NSGraphicsContext saveGraphicsState]; 
    [[self affineTrasformForSubview: subview] concat]; 
    [subview drawRect: subview.bounds]; 
    [[NSGraphicsContext restoreGraphicsState]; 
} 

有什麼建議?

+0

你究竟在做什麼? – Jay

+0

每個子視圖負責繪製自己;你的NSView子類無法控制它們的功能。 – trudyscousin

+0

@Jay我想在創建自定義動畫之前應用轉換。也許有可能用圖層來做到這一點? –

回答

1

旋轉:一個NSView setFrameCenterRotation:角

縮放:一個NSView scaleUnitSquareToSize:大小

比旋轉和縮放你需要讓你的視圖層支持的一個好惹的層周圍更多,即使這是違反蘋果的建議。但我不會擔心太多,我認爲這是值得一試的。