UIViewAnimationState is the manager class of UIView animation blocks. The system maintains a private global stack that contains all pending animation states. When a state is popped, the corresponding animation begins.
The animations will all go back to QuartzCore (Core Animation).
Drag coefficient
Signature | CGFloat UIAnimationDragCoefficient(); |
---|---|
Available in | 2.0 – |
The drag coefficient is a multiplier applied on time measurements. A large drag coefficient can slow down animations.
The drag coefficient is obtained with the UIAnimationDragCoefficient() function, which in turn is an integer of the key UIAnimationDragCoefficient in the preference file ~/Library/Preferences/com.apple.UIKit.plist.
Drag coefficient will not affect non-UIKit animations.
Animation transitions
Besides the default 4, the iPhoneOS identifies tons of transition effects, all value numerical value starting from 101:
Numeric | String | Available on 3.x | Comments |
---|---|---|---|
0 (UIViewAnimationTransitionNone) | - | Yes | |
1 (UIViewAnimationTransitionFlipFromLeft) | oglFlip, fromLeft | Yes | |
2 (UIViewAnimationTransitionFlipFromRight) | oglFlip, fromRight | Yes | |
3 (UIViewAnimationTransitionCurlUp) | pageCurl | Yes | |
4 (UIViewAnimationTransitionCurlDown) | pageUnCurl | Yes | |
101 | pageCurl | Yes | Equivalent to UIViewAnimationTransitionCurlUp |
102 | pageUnCurl | Yes | Equivalent to UIViewAnimationTransitionCurlDown |
103 | suckEffect | Yes | Sucked to around (160, 360) on the screen. |
104 | spewEffect | No | |
105 | cameraIris | Yes | You should assume the view you're operating on has a black background. |
106 | cameraIrisHollowClose | Yes | First half of cameraIris. |
107 | cameraIrisHollowOpen | Yes | Second half of cameraIris. |
108 | genieEffect | No | |
109 | unGenieEffect | No | |
110 | rippleEffect | Yes | |
111 | twist | No | |
112 | tubey | No | |
113 | swirl | No | |
114 | charminUltra | No | |
115 | zoomyIn | No | |
116 | zoomyOut | No | |
117 | oglApplicationSuspend | No |
Using suckEffect
The most SDK-compatible way of using suckEffect is to use animation blocks. But the suction point by default is close to nowhere. Therefore you still need to use the undocumented method +[UIView setAnimationPosition:]:
[UIView beginAnimations:@"suck" context:NULL];
[UIView setAnimationTransition:103 forView:myViewContainer cache:YES];
[UIView setAnimationPosition:CGPointMake(12, 345)];
[myView removeFromSuperview];
[UIView commitAnimations];
References
- All animation names: http://www.waterworld.com.hk/en/node/74
- Header: http://github.com/kennytm/iphone-private-frameworks/blob/master/UIKit/UIViewAnimationState.h