zoukankan      html  css  js  c++  java
  • 01-UIDynamic简单演练demo源代码

      1. 源代码下载:

      01-简单演练.zip
      72.0 KB
    1. //
    2. //  ViewController.m
    3. //  01.简单演练
    4. //
    5. //  Created by apple on 13-12-24.
    6. //技术博客http://www.cnblogs.com/ChenYilong/新浪微博http://weibo.com/luohanchenyilong

    7. #import "ViewController.h"

    8. @interface ViewController ()
    9. {
    10.     UIDynamicAnimator *_animator;
    11. }
    12. @end

    13. @implementation ViewController
    14. /*
    15.  要使用UIDynamic的步骤
    16.  
    17.  1. 实例化一个仿真者,用于物理仿真
    18.     参照视图:用于指定仿真的范围
    19.  
    20.     Box2DWorld(仿真世界),10m
    21.  2. 指定要仿真(模拟)的行为(动作),并指定哪些对象遵守该动作
    22.  3. 将行为添加到仿真者,仿真立刻开始
    23.  
    24.  */
    25. - (void)viewDidLoad
    26. {
    27.     [super viewDidLoad];

    28.     UIView *view = [[UIView alloc]initWithFrame:CGRectMake(110, 100, 100, 100)];
    29.     view.backgroundColor = [UIColor blueColor];
    30.     [self.view addSubview:view];
    31.     
    32. //    [view.layer setTransform:CATransform3DRotate(view.layer.transform, M_PI_4, 0, 0, 1)];
    33.     view.transform = CGAffineTransformMakeRotation(M_PI_4);

    34.     UIView *redView = [[UIView alloc] initWithFrame:CGRectMake(80, 50, 50, 50)];
    35.     redView.backgroundColor = [UIColor redColor];
    36.     [self.view addSubview:redView];
    37.     
    38.     // 1. 谁来仿真?UIDynamicAnimator来负责仿真
    39.     UIDynamicAnimator *animator = [[UIDynamicAnimator alloc] initWithReferenceView:self.view];
    40.     
    41.     // 2. 仿真个什么动作?自由落体
    42.     UIGravityBehavior *gravity = [[UIGravityBehavior alloc] initWithItems:@[view, redView]];
    43.     
    44.     // 3. 碰撞检测
    45.     UICollisionBehavior *collision = [[UICollisionBehavior alloc] initWithItems:@[view, redView]];
    46.     // 设置不要出边界,碰到边界会被反弹
    47.     collision.translatesReferenceBoundsIntoBoundary = YES;
    48.     
    49.     // 4. 开始仿真
    50.     [animator addBehavior:gravity];
    51.     [animator addBehavior:collision];
    52.     //本文永久链接,转载请注明出处:http://www.cnblogs.com/ChenYilong/p/3490312.html
    53.     // 5. 使负责仿真的UIDynamicAnimator对象时刻存在于整个事件中—>创建成员变量记录之.否则出了viewDidLoad就会被销毁.否则出了viewDidLoad就会被销毁,而仿真是个长时间持续存在的事件.
    54.     _animator = animator;
    55. }

    56. @end


    作者:
    出处:http://www.cnblogs.com/ChenYilong/(点击RSS订阅)
    本文版权归作者和博客园共有,欢迎转载,
    但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    XSLT轻松入门收藏贴
    [网摘学习]使用openstack构建私有云计算平台
    [网摘学习]关于OpenStack架构
    [问题]django_openstack.templatetags
    [网摘学习]5个Linux命令
    关于git使用 命令参考
    [openstack问题]dashboard无法登陆进去的问题
    前台显示后台变量值
    实现浏览器垂直水平居中的 DIV
    IsPostBack作用
  • 原文地址:https://www.cnblogs.com/ChenYilong/p/3490312.html
Copyright © 2011-2022 走看看