博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS开发UIMotionEffect运动视觉效果
阅读量:5891 次
发布时间:2019-06-19

本文共 2157 字,大约阅读时间需要 7 分钟。

1、UIMotionEffect简介

  在iOS7.0推出了UIMotionEffect运动视觉效果,就是从屏幕偏移不同角度、看到的效果不同!

NS_CLASS_AVAILABLE_IOS(7_0)@interface UIMotionEffect : NSObject 
- (instancetype)init NS_DESIGNATED_INITIALIZER;- (nullable instancetype)initWithCoder:(NSCoder *)aDecoder NS_DESIGNATED_INITIALIZER;//观察者的角度偏移viewerOffset,获取运动视觉效果的各项属性和值- (nullable NSDictionary
*)keyPathsAndRelativeValuesForViewerOffset:(UIOffset)viewerOffset;@endtypedef NS_ENUM(NSInteger, UIInterpolatingMotionEffectType) { UIInterpolatingMotionEffectTypeTiltAlongHorizontalAxis,//X轴 UIInterpolatingMotionEffectTypeTiltAlongVerticalAxis//Y轴};@interface UIInterpolatingMotionEffect : UIMotionEffect- (instancetype)initWithKeyPath:(NSString *)keyPath type:(UIInterpolatingMotionEffectType)type NS_DESIGNATED_INITIALIZER;//初始化- (nullable instancetype)initWithCoder:(NSCoder *)aDecoder NS_DESIGNATED_INITIALIZER;@property (readonly, nonatomic) NSString *keyPath;//获取角度偏移@property (readonly, nonatomic) UIInterpolatingMotionEffectType type;//获取类型@property (nullable, strong, nonatomic) id minimumRelativeValue;//最小角度偏移@property (nullable, strong, nonatomic) id maximumRelativeValue;//最大角度偏移@end@interface UIMotionEffectGroup : UIMotionEffect@property (nullable, copy, nonatomic) NSArray<__kindof UIMotionEffect *> *motionEffects;//添加水平和垂直效果添加到对应UI上@end

 

2、简单使用

- (void)addEffectWithOffset:(NSInteger)offset withView:(UIView *)view{    UIInterpolatingMotionEffect *effectX = [[UIInterpolatingMotionEffect alloc] initWithKeyPath:@"center.x" type:UIInterpolatingMotionEffectTypeTiltAlongHorizontalAxis];    effectX.minimumRelativeValue = @(-offset);    effectX.maximumRelativeValue = @(offset);        UIInterpolatingMotionEffect *effectY = [[UIInterpolatingMotionEffect alloc] initWithKeyPath:@"center.y" type:UIInterpolatingMotionEffectTypeTiltAlongVerticalAxis];    effectY.minimumRelativeValue = @(-offset/2);    effectY.maximumRelativeValue = @(offset/2);    //    UIMotionEffectGroup *group = [[UIMotionEffectGroup alloc] init];//    group.motionEffects = @[effectX,effectY];    view.motionEffects = @[effectX,effectY];}

 

转载于:https://www.cnblogs.com/xianfeng-zhang/p/8926538.html

你可能感兴趣的文章
写给MongoDB开发者的50条建议Tip13
查看>>
Linux 系统管理的基本知识
查看>>
我的友情链接
查看>>
那些年,一起学的Java 7-4
查看>>
我的友情链接
查看>>
vsftp:500 OOPS: could not bind listening IPv4 sock
查看>>
系统架构师职业分析
查看>>
Centos7下安装DB2
查看>>
我的友情链接
查看>>
Linux安装BTCPayServer并设置比特币BTC和Lightning支付网关
查看>>
Python 的 with 语句
查看>>
SpringCloud Gateway与swagger集成解决方案
查看>>
谈谈我第一次如何为 Laravel 贡献源码
查看>>
Web开发中 前端路由 实现的几种方式和适用场景
查看>>
python3实现的json数据以HTTP GET,POST,PUT,DELETE方式页面请求
查看>>
梳理一份机器学习的学习目录
查看>>
Java并发编程:深入剖析ThreadLocal
查看>>
Mac OSX 中java7 java8环境的配置
查看>>
我所理解的JDK自动装箱和拆箱
查看>>
30分钟入门Java
查看>>