For my understanding, beginTime can be used to say "hey, start at exactly 12:00 'o clock". But how would I tell this with an CFTimeInterval type? I thought that this one is nothing more than a kind of "float" value to specify seconds.
Or what else would be then the difference to the timeOffset property that is specified in CAMediaTiming protocol?
declaring global variables in iPhone project
1:Where's the difference between setObject:forKey: and setValue:forKey: in NSMutableDictionary?
// Start in 5 seconds theAnimation.beginTime = CACurrentMediaTime()+5;
2:What's the difference between using obj-c accessors and using dot syntax?
Specifies the begin time of the receiver in relation to its parent object, if applicable..timeOffset causes it to start animating at the frame it would be at at the offSet time, and when it reaches the end it loops around. In another words, imagine A,B,C,D,E are frames of animation this is what happends in various cases if you set beginTime or timeOffset to a value equal to when you hit frame C in the normal case..
Normal |A->B->C->D->E beginTime: | A->B->C->D->E timeOffset: |C->D->E->A->B
Then you must set the beginTime relative to the layer's now time. For instance, to make an animation begin in 2s:.
let currentLayerTime = myLayer.convertTime(CACurrentMediaTime(), fromLayer: nil)
You'll also likely want to set the 'fillMode' to backwards, so this you must set the final property value before you add the animation:.
myAnimation.beginTime = currentLayerTime + 2
myAnimation.fillMode = kCAFillModeBackwards myLayer.any Property = any FinalValue myLayer.addAnimation(myAnimation, forKey: "myAnimationName")