To my eyes it is a more subtle and less jumpy depth effect. The content you're looking at isn't moving, but the shadows it casts are.
@implementation UIView (Giffish)
- (void)addShadowing {
[self.layer setShadowColor:[UIColor blackColor].CGColor];
[self.layer setShadowOpacity:0.4];
[self.layer setShadowRadius:3.0];
[self.layer setShadowOffset:CGSizeMake(0, 2)];
}
- (void)addShadowParallaxMotionEffect:(float)amountAndDirection {
float amount = 10.0*amountAndDirection;
UIInterpolatingMotionEffect *motionX = [[UIInterpolatingMotionEffect alloc] initWithKeyPath:@"layer.shadowOffset.width" type:UIInterpolatingMotionEffectTypeTiltAlongHorizontalAxis];
[motionX setMaximumRelativeValue:@(amount)];
[motionX setMinimumRelativeValue:@(-amount)];
UIInterpolatingMotionEffect *motionY = [[UIInterpolatingMotionEffect alloc] initWithKeyPath:@"layer.shadowOffset.height" type:UIInterpolatingMotionEffectTypeTiltAlongVerticalAxis];
[motionY setMaximumRelativeValue:@(amount)];
[motionY setMinimumRelativeValue:@(-amount)];
UIMotionEffectGroup *group = [[UIMotionEffectGroup alloc] init];
group.motionEffects = @[motionX, motionY];
[self addMotionEffect:group];
}
@end
//You'd want -1.0 to start. See how that looks and adjust.
[button addShadowing];
[button addShadowParallaxMotionEffect:-1.0];
//This type of thing works too.
[button.titleLabel addShadowing];
[button.titleLabel addShadowParallaxMotionEffect:-1.0];
No comments:
Post a Comment