iOS开发UIMotionEffect运动视觉效果
2024-08-22 20:31:12
1、UIMotionEffect简介
在iOS7.0推出了UIMotionEffect运动视觉效果,就是从屏幕偏移不同角度、看到的效果不同!
NS_CLASS_AVAILABLE_IOS(7_0)
@interface UIMotionEffect : NSObject <NSCopying, NSCoding>
- (instancetype)init NS_DESIGNATED_INITIALIZER;
- (nullable instancetype)initWithCoder:(NSCoder *)aDecoder NS_DESIGNATED_INITIALIZER;
//观察者的角度偏移viewerOffset,获取运动视觉效果的各项属性和值
- (nullable NSDictionary<NSString *, id> *)keyPathsAndRelativeValuesForViewerOffset:(UIOffset)viewerOffset;
@end typedef 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/);
effectY.maximumRelativeValue = @(offset/); // UIMotionEffectGroup *group = [[UIMotionEffectGroup alloc] init];
// group.motionEffects = @[effectX,effectY];
view.motionEffects = @[effectX,effectY];
}
最新文章
- having过滤语句
- hibernate(七) hibernate中查询方式详解
- 深入理解Java:注解(Annotation)自定义注解入门
- ios swfit 由继承UIButton了解类的构造方法
- scp不可用:WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED
- mycat初探
- VS2012下安装NuGet
- extjs文件上传
- IDEA SDK(Software Development Kit) 介绍
- 南理第八届校赛同步赛-F sequence//贪心算法&;二分查找优化
- Sonar入门(四):Eclipse集成Sonar
- WebStorm重复代码快捷表达
- codeblock字体问题
- linux之dos2unix命令
- HTML&;javaSkcript&;CSS&;jQuery&;ajax(三)
- SQL 分隔字符串
- 物联网架构成长之路(10)-Nginx负载均衡
- ionic 监听页面滚动,点击停止滚动
- innodb compressed 表碰到的问题,BUG么?
- libcurl.dll 7.60.0静态库包含openssl/zlib