zoukankan      html  css  js  c++  java
  • 使用UIDynamicAnimator创建重力感应的View

    使用UIDynamicAnimator创建重力感应的View

    http://www.raywenderlich.com/zh-hans/52617/uikit-力学教程

    详细教程请参考上面的链接,此处仅仅是最简单的使用而已.

    //
    //  RootViewController.m
    //  DynamicView
    //
    //  Copyright (c) 2014年 Y.X. All rights reserved.
    //
    
    #import "RootViewController.h"
    
    @interface RootViewController ()
    
    @property (nonatomic, strong) UIView              *gravityView;
    @property (nonatomic, strong) UIDynamicAnimator   *animator;     // 力学引擎
    
    @end
    
    @implementation RootViewController
    
    - (void)viewDidLoad
    {
        [super viewDidLoad];
        
        // 创建一个view
        _gravityView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
        _gravityView.backgroundColor = [UIColor redColor];
        [self.view addSubview:_gravityView];
        
        // 创建力学引擎并指定一个view来影响这个view的坐标系统
        _animator = [[UIDynamicAnimator alloc] initWithReferenceView:self.view];
        
        // 创建一个重力感应的行为,_gravityView将遵守这个行为,并提交给力学引擎
        UIGravityBehavior *gravity = 
            [[UIGravityBehavior alloc] initWithItems:@[_gravityView]];
        [_animator addBehavior:gravity];
        
        // 创建一个边界碰撞行为,_gravityView将遵守这个行为,并提交给力学引擎
        UICollisionBehavior *collision = 
            [[UICollisionBehavior alloc] initWithItems:@[_gravityView]];
        collision.translatesReferenceBoundsIntoBoundary = YES; // 开启边界范围限制
        [_animator addBehavior:collision];
    }
    
    @end
    RootViewController.m

  • 相关阅读:
    alg--动态规划(dynamic planning)
    alg--分治法
    汇编-理解call,ret
    汇编--实验7
    leetCode笔记--binary tree
    leetCode笔记--(1)
    C#获取当前路径的方法如下
    VS2013 快捷键 与 RESHARPER 冲突
    使用Visual Studio 2013进行单元测试--初级篇
    VS 插件
  • 原文地址:https://www.cnblogs.com/YouXianMing/p/3722793.html
Copyright © 2011-2022 走看看