Can we animate "shadowOpacity" using UIView animation block?
We are pretty much used to the UIView animation block for properties like frame and transforms.
+ (void)animateWithDuration:(NSTimeInterval)duration animations:(void (^)(void))animations
Lets say there is a UIView *userView and you would like to show animation of shadow turned on or off.
[UIView animateWithDuration:01 animations:^{
if(showShadow){
self.userView.layer.shadowOpacity=0.5;
}else{
self.userView.layer.shadowOpacity=0.0;
}
}];
The above code is not going to work. UIView animates frame, bounds, center, tranform, alpha, background Color and contentStretch.i.e simple animation.
The View Programming guide - Animations url gives more details on it.
It does not animate layer properties. So , we will have to use CABasicAnimation. The following code will work perfectly fine.
float start=0.5,end=0.0;//example
CABasicAnimation *animation = [CABasicAnimation animation];
animation.fromValue= @(start);
animation.toValue= @(end);
animation.duration = 1.0;
[self.userView.layer addAnimation:animation forKey:@"shadowOpacity"];
self.userView.layer.shadowOpacity=end;
| |
This comment has been removed by a blog administrator.
ReplyDelete