iOS-UIDynamic物理仿真-捕捉-UISnapBehavior
2016-03-15 01:00
561 查看
捕捉-UISnapBehavior
今天我们来讲物理仿真的另一种行为捕捉行为,不多说先上图套路和之前物理仿真重力/碰撞的实现是一致的
首先在storyboard拖取一个View,设置一下frame属性,当然偏好纯代码的同学也可也在viewDidload方法中手动创建
@property (weak, nonatomic) IBOutlet UIView *testView;
设置一下控件的圆角,其次给控制器的View添加UITapGestureRecognizer手势对象(点击手势)
self.testView.layer.cornerRadius = 25; UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(viewDidTapGesture:)]; [self.view addGestureRecognizer:tapGesture];
在viewDidTapGesture:方法中实现点击手势之后的具体操作(捕捉仿真动画)
- (void)viewDidTapGesture:(UITapGestureRecognizer *)tapGesture { //获取手指当前的触摸点 CGPoint currentTapPoint = [tapGesture locationInView:self.view]; //创建物理仿真器 self.animator = [[UIDynamicAnimator alloc] initWithReferenceView:self.view]; //创建物理仿真行为 UISnapBehavior *snap = [[UISnapBehavior alloc] initWithItem:self.testView snapToPoint:currentTapPoint]; //设置属性 // snapPoint 捕获的点 // damping; // damping value from 0.0 to 1.0. 0.0 is the least oscillation. 阻尼系数 snap.damping = 0.2; //添加行为 [self.animator addBehavior:snap]; //改变控件的颜色 self.testView.backgroundColor = [self randomColor]; }
//产生随机色的方法 - (UIColor *)randomColor { CGFloat red = arc4random() % 256; CGFloat green = arc4random() % 256; CGFloat blue = arc4random() % 256; return [UIColor colorWithRed:red / 255.0 green:green / 255.0 blue:blue / 255.0 alpha:1]; }
最后贴一下源码地址物理仿真
相关文章推荐
- 同一设置UINavigationBar
- UITextField的键盘(格式化设置)
- Sea.js & Require.js
- iOS-UIDynamic物理仿真-重力、碰撞
- java7新特性之—String values in a switch statement
- 前端开发总结--之关于FusionSphere WEBUI的想法
- juicer js模板引擎
- UIView的layoutSubviews和drawRect方法何时调用
- UITableViewCell选中自定义的颜色
- String、StringBuffer与StringBuilder之间区别
- iOS-Masonry布局UIScrollView
- Android 自定义UI控件模板 组合模式
- easyui messager修改button按钮里的文字
- [备查]使用 SPQuery 查询 "Person or Group" 字段
- UIButton自定义路径动画
- 【资源分享】visual tracker bechmark v1.0 TB-50 Sequences合集
- 设计模式之------创建型模式(四)-----建造者模式(Builder)
- TabLayout的使用
- Eloquent ORM笔记
- 【C#】 String和String Builder效率比较