博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UIDynamic(捕捉行为)
阅读量:5223 次
发布时间:2019-06-14

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

一、简介

可以让物体迅速冲到某个位置(捕捉位置),捕捉到位置之后会带有一定的震动

UISnapBehavior的初始化

  - (instancetype)initWithItem:(id <UIDynamicItem>)item snapToPoint:(CGPoint)point;

 

UISnapBehavior常见属性

  @property (nonatomic, assign) CGFloat damping;

  用于减幅、减震(取值范围是0.0 ~ 1.0,值越大,震动幅度越小)

 

UISnapBehavior使用注意

  如果要进行连续的捕捉行为,需要先把前面的捕捉行为从物理仿真器中移除

 

代码:

//////  捕捉行为:可以让物体迅速冲到某个位置(捕捉位置),捕捉到位置之后会带有一定的震动//#import "YFSnapBehaviorViewController.h"@interface YFSnapBehaviorViewController()@property(nonatomic,strong)UIDynamicAnimator *animator;@property (nonatomic, strong) UIButton *blueView;@end@implementation YFSnapBehaviorViewController-(void)viewDidLoad {    [super viewDidLoad];        self.view.backgroundColor = [UIColor whiteColor];        UIButton *blueView = [[UIButton alloc] init];    blueView.frame = CGRectMake(100, 100, 100, 100);    blueView.backgroundColor = [UIColor blueColor];    [self.view addSubview:blueView];    self.blueView = blueView;}-(UIDynamicAnimator *)animator{    if (_animator==nil) {        //创建物理仿真器,设置仿真范围,ReferenceView为参照视图        _animator=[[UIDynamicAnimator alloc]initWithReferenceView:self.view];    }    return _animator;}-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{    //获取一个触摸点    UITouch *touch=[touches anyObject];    CGPoint point=[touch locationInView:touch.view];        //1.创建捕捉行为    //需要传入两个参数:一个物理仿真元素,一个捕捉点    UISnapBehavior *snap=[[UISnapBehavior alloc]initWithItem:self.blueView snapToPoint:point];    //设置防震系数(0~1,数值越大,震动的幅度越小)    snap.damping=arc4random_uniform(10)/10.0;        //2.执行捕捉行为    //注意:这个控件只能用在一个仿真行为上,如果要拥有持续的仿真行为,那么需要把之前的所有仿真行为删除    //删除之前的所有仿真行为    [self.animator removeAllBehaviors];    [self.animator addBehavior:snap];}@end

 

转载于:https://www.cnblogs.com/bigshow1949/p/5806213.html

你可能感兴趣的文章
Python内置函数(36)——iter
查看>>
HTML标签_1
查看>>
排序算法(转)
查看>>
windows自带的可生成各种数据库连接字符串工具打开方法
查看>>
Python命名规范
查看>>
滚动条
查看>>
程序员的自我修养九Windows下的动态链接
查看>>
细说WebSocket - Node篇
查看>>
Extjs控件之 grid打印功能
查看>>
枚举类型(不常用)递归
查看>>
minggw 安装
查看>>
Jquery操作cookie,实现简单的记住用户名的操作
查看>>
[BZOJ1196][HNOI2006]公路修建问题 二分答案+最小生成树
查看>>
【原创】大数据基础之Zookeeper(4)应用场景
查看>>
静态变量数组实现LRU算法
查看>>
中文系统 上传file的input显示英文
查看>>
比callback更简洁的链式执行promise
查看>>
android permission
查看>>
【译】在Asp.Net中操作PDF - iTextSharp - 使用字体
查看>>
.net 文本框只允许输入XX,(正则表达式)
查看>>