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