-
Notifications
You must be signed in to change notification settings - Fork 0
/
UIView+addition.m
39 lines (32 loc) · 1.14 KB
/
UIView+addition.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
//
// UIView+addition.m
// iVerb
//
// Created by Max on 17/02/2017.
//
//
#import "UIView+addition.h"
@implementation UIView (addition)
- (void)addParallaxEffect:(ParallaxAxis)axis offset:(CGFloat)offset
{
NSMutableArray <UIMotionEffect *> * effects = [NSMutableArray arrayWithCapacity:2];
UIInterpolatingMotionEffect * motionEffect = nil;
if (axis & ParallaxAxisHorizontal) {
motionEffect = [[UIInterpolatingMotionEffect alloc] initWithKeyPath:@"center.x"
type:UIInterpolatingMotionEffectTypeTiltAlongHorizontalAxis];
motionEffect.minimumRelativeValue = @(-offset);
motionEffect.maximumRelativeValue = @(offset);
[effects addObject:motionEffect];
}
if (axis & ParallaxAxisVertical) {
motionEffect = [[UIInterpolatingMotionEffect alloc] initWithKeyPath:@"center.y"
type:UIInterpolatingMotionEffectTypeTiltAlongVerticalAxis];
motionEffect.minimumRelativeValue = @(-offset);
motionEffect.maximumRelativeValue = @(offset);
[effects addObject:motionEffect];
}
UIMotionEffectGroup * group = [[UIMotionEffectGroup alloc] init];
group.motionEffects = effects;
[self addMotionEffect:group];
}
@end