簡體   English   中英

NSButton在cocoa mac應用程序中順時針旋轉動畫

[英]NSButton rotate animation clockwise in cocoa mac application

我在目標 c 中有一個可可 mac 應用程序。

當我按下我的 NSButton 時,我想用動畫順時針旋轉它幾秒鍾。

我試過下面的代碼但沒有工作。

CABasicAnimation *ani = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
    ani.fromValue = [NSNumber numberWithFloat:0];
    ani.toValue = [NSNumber numberWithFloat:-M_PI*2];
    [btnScan.layer setAnchorPoint:CGPointMake(0.5, 0.5)];
    ani.duration = 2.0; // seconds
    ani.repeatCount = HUGE_VAL;
    [btnScan.layer addAnimation:ani forKey:nil];

我搜索了很多,但找不到合適的解決方案。

任何人都可以幫助我嗎?

添加[btnScan setWantsLayer:YES]; 在你做動畫之前。 NSView 與 UIView 不同,默認情況下沒有支持層。

來自蘋果文檔

在 iOS 應用程序中,核心動畫始終處於啟用狀態,並且每個視圖都由一個層支持。 在 OS X 中,應用程序必須通過執行以下操作顯式啟用 Core Animation 支持:

  • 鏈接 QuartzCore 框架。 (只有當 iOS 應用明確使用 Core Animation 接口時,它們才必須鏈接到這個框架。)

  • 通過執行以下操作之一,為一個或多個 NSView 對象啟用層支持:

    • 在您的 nib 文件中,使用視圖效果檢查器為您的視圖啟用圖層支持。 檢查器顯示選定視圖及其子視圖的復選框。 建議您盡可能在窗口的內容視圖中啟用圖層支持。

    • 對於以編程方式創建的視圖,調用視圖的 setWantsLayer: 方法並傳遞 YES 值以指示視圖應使用圖層。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM