2011-08-21 79 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 
    }); 
    } 
}); 
相关问题