我正在學習Core Animation並試用示例示例。CATransaction設置動畫持續時間不起作用
當我使用下面的代碼時,動畫的持續時間工作
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
//Modifying base layer
self.view.layer.backgroundColor = [UIColor orangeColor].CGColor;
self.view.layer.cornerRadius = 20.0;
self.view.layer.frame = CGRectInset(self.view.layer.frame, 20, 20);
//Adding layer
mylayer=[CALayer layer]; //mylayer declared in .h file
mylayer.bounds=CGRectMake(0, 0, 100, 100);
mylayer.position=CGPointMake(100, 100); //In parent coordinate
mylayer.backgroundColor=[UIColor redColor].CGColor;
mylayer.contents=(id) [UIImage imageNamed:@"glasses"].CGImage;
[self.view.layer addSublayer:mylayer];
}
- (IBAction)Animate //Simple UIButton
{
[CATransaction begin];
// change the animation duration to 2 seconds
[CATransaction setValue:[NSNumber numberWithFloat:2.0f] forKey:kCATransactionAnimationDuration];
mylayer.position=CGPointMake(200.0,200.0);
mylayer.zPosition=50.0;
mylayer.opacity=0.5;
[CATransaction commit];
}
@end
在另一方面,如果我在viewDidLoad中按鈕,以便它發生不按壓任何按鈕的底部集總的動畫的方法的代碼,動畫持續時間不受尊重。我只看到沒有任何動畫的最終結果。
有什麼想法?
感謝 九巴
感謝羅布。這工作。我猜這些括號開始提交是可選的。 – Spectravideo328
大括號是可選的。我喜歡縮進'begin'和'commit'之間的代碼,並且大括號使Xcode自動縮進它。 –
我強烈推薦參考WWDC視頻 - 這是一個很好的介紹了CoreAnimation的許多陷阱。 – MaxGabriel