2011-08-21 14 views
1

Mail.app在激活時滑動的左下角有一個小活動窗格。我注意到它在動畫期間重新定義了它上面的源列表(滾動條同時調整大小)。在OS X中設置動畫視圖大小

這怎麼能實現?我還沒有找到一種內置的方式來動畫視圖框架,就像你可以做的一樣。

回答

2

您可以使用Core Animation。框架與核心動畫改變的例子如下所示:http://www.macresearch.org/tutorial-intro-core-animation

您還可以使用NSViewAnimation做動畫,如下所示:http://www.cocoadev.com/index.pl?AnimatedNSSplitView

的第三種方法是用自己GCD要做到這一點:

CGFloat duration = 2; //animation duration (seconds) 

int N = 100; //animation fineness 
CGFloat dt = duration/N; //time change 

dispatch_async(dispatch_get_global_queue(0,0), ^{ 
    for (int i = 1; i <= N; i++) 
    { 
    NSDate *future = [NSDate dateWithTimeIntervalSinceNow:dt]; 
    [NSThread sleepUntilDate:future]; 

    //calculate your new frame/splitview setup 

    dispatch_async(dispatch_get_main_queue(), ^{ 
     //apply the new frame/splitview setup 
    }); 
    } 
});