使用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

目录
相关文章
|
Android开发
Android自定义支持滑动监听View
Android自定义支持滑动监听View
432 0
|
iOS开发
iOS开发 - touchBegan事件判断点击的位置在View上还是在View的子View上
iOS开发 - touchBegan事件判断点击的位置在View上还是在View的子View上
287 0
iOS开发 - touchBegan事件判断点击的位置在View上还是在View的子View上
|
前端开发 容器
View的测量、布局和绘制过程中父View(当前View)和子View的先后顺序
View的测量、布局和绘制过程中,到底是先测量(布局、绘制)父View,还是先测量子View,这篇文章会从源码角度给出答案。
|
Android开发
Android下拖动任意View代码(使用属性动画,眼前一亮)
mLocalFrameLayout.setOnTouchListener(new View.
1253 0
|
Android开发 缓存 C#
android ListView包含Checkbox滑动时状态改变
题外话: 在xamarin android的开发中基本上所有人都会遇到这个小小的坎,的确有点麻烦,当时我也折腾了好一半天,如果你能看到这篇博客,说明你和我当初也是一样的焦灼,如果你想解决掉这个小小的坎,那么不要着急,一步一步来。
1033 0

热门文章

最新文章