[iOS]UIInterpolatingMotionEffect重力视觉差

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    
    self.view.backgroundColor = [UIColor grayColor];
    
    UIView *view = [[UIView alloc] initWithFrame:self.view.bounds];
    view.backgroundColor = [UIColor blueColor];
    view.layer.borderColor = [[UIColor greenColor] CGColor];
    view.layer.borderWidth = 5.0;
    [self.view addSubview:view];
    
    // 创建偏移
    UIInterpolatingMotionEffect *effectX = [[UIInterpolatingMotionEffect alloc]
                                            initWithKeyPath:@"center.x"
                                            type:UIInterpolatingMotionEffectTypeTiltAlongHorizontalAxis];
    UIInterpolatingMotionEffect *effectY = [[UIInterpolatingMotionEffect alloc]
                                            initWithKeyPath:@"center.y"
                                            type:UIInterpolatingMotionEffectTypeTiltAlongVerticalAxis];
    
    // 设置最大值和最小值
    effectX.maximumRelativeValue = @(100);
    effectX.minimumRelativeValue = @(-100);
    effectY.maximumRelativeValue = @(100);
    effectY.minimumRelativeValue = @(-100);
    
    [view addMotionEffect:effectX];
    [view addMotionEffect:effectY];
}

初始效果图

倾斜屏幕后效果图

原文地址:https://www.cnblogs.com/EverNight/p/7070406.html