- RESideMenu-> UIInterpolatingMotionEffect->視覺差效果(iOS7)
- RESideMenu-> 制作類似UINavigationController、UITabBarController的控制器容器
RESideMenu
-
視覺差效果
UIInterpolatingMotionEffect
這個東西其實(shí)是iOS7的,原諒我現(xiàn)在才知道后添。充边。。效果就是在真機(jī)(模擬器沒有傳感器)上面左右或者上下傾斜手機(jī)悴务,view會自動根據(jù)感應(yīng)器的傾斜角度對View進(jìn)行偏移 給人以視覺上的層次感(iOS系統(tǒng)桌面背景圖)
keyPath:左右翻轉(zhuǎn)屏幕將要影響到的屬性猜欺,比如center.x归敬。
type:(UIInterpolatingMotionEffectType類型),觀察者視角硕勿,也就是屏幕傾斜的方式哨毁,目前區(qū)分水平和垂直兩種方式
minimumRelativeValue、maximumRelativeValuev 對應(yīng)的值的變化范圍源武,注意這個是id類型扼褪。min對應(yīng)最小的offset,max對應(yīng)最大的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系統(tǒng)桌面的背景圖)給人以層次感
[self.menuViewContainer addMotionEffect:interpolationHorizontal];
[self.menuViewContainer addMotionEffect:interpolationVertical];