【iOS】那些年源码中的Tips...

  1. RESideMenu-> UIInterpolatingMotionEffect->视觉差效果(iOS7)
  2. RESideMenu-> 制作类似UINavigationController、UITabBarController的控制器容器

RESideMenu

  1. 视觉差效果
    UIInterpolatingMotionEffect这个东西其实是iOS7的,原谅我现在才知道。。。效果就是在真机(模拟器没有传感器)上面左右或者上下倾斜手机,view会自动根据感应器的倾斜角度对View进行偏移 给人以视觉上的层次感(iOS系统桌面背景图)
    keyPath:左右翻转屏幕将要影响到的属性,比如center.x。
    type:(UIInterpolatingMotionEffectType类型),观察者视角,也就是屏幕倾斜的方式,目前区分水平和垂直两种方式
    minimumRelativeValue、maximumRelativeValuev 对应的值的变化范围,注意这个是id类型。min对应最小的offset,max对应最大的offset。视差的范围
//最好每次添加效果的时候先移除掉原来的那些效果
for (UIMotionEffect *effect in self.menuViewContainer.motionEffects) {
             [self.menuViewContainer removeMotionEffect:effect];
         }
UIInterpolatingMotionEffect *interpolationHorizontal = [[UIInterpolatingMotionEffect alloc]initWithKeyPath:@"center.x" type:UIInterpolatingMotionEffectTypeTiltAlongHorizontalAxis];
interpolationHorizontal.minimumRelativeValue = @(self.parallaxMenuMinimumRelativeValue);
interpolationHorizontal.maximumRelativeValue = @(self.parallaxMenuMaximumRelativeValue);
         
UIInterpolatingMotionEffect *interpolationVertical = [[UIInterpolatingMotionEffect alloc]initWithKeyPath:@"center.y" type:UIInterpolatingMotionEffectTypeTiltAlongVerticalAxis];
interpolationVertical.minimumRelativeValue = @(self.parallaxMenuMinimumRelativeValue);
interpolationVertical.maximumRelativeValue = @(self.parallaxMenuMaximumRelativeValue);
//这玩意一般最好加到背景图(ios系统桌面的背景图)给人以层次感
[self.menuViewContainer addMotionEffect:interpolationHorizontal];
[self.menuViewContainer addMotionEffect:interpolationVertical];

你可能感兴趣的:(【iOS】那些年源码中的Tips...)