全站技术

联系我们

全站技术位置:主页 > 全站技术 >

【iOS】UIDynamic,iosuidynamic

编辑:AG88 时间:2019-01-31

【iOS】UIDynamic,iosuidynamic

UIDynamic是从iOS 7开始引入的一种新技术,属于UIKit框架。可以认为是一种物理引擎,能模拟和www.918.com仿真现实生活中的物理现象:如重力、弹性碰撞等现象。


一、UIDynamic中的一些概念

三个重要的类:

UIDynamicItem Protocol:(要执行仿真动画的对象)

To make a custom object eligible to participate in UIKit Dynamics, adopt the UIDynamicItem protocol in the object’s class.
Starting in iOS 7, the UIView and UICollectionViewLayoutAttributes classes implement this protocol.

UIDynamicAnimator Class:(相当于控制者,仿真器)

A dynamic animator provides physics-related capabilities and animations for its dynamic items, and provides the context for those animations. It does this by intermediating between the underlying iOS physics engine and dynamic items, via behavior objects you add to the animator.

UIDynamicBehavior Class:(执行怎样的动画)

A dynamic behavior confers a behavioral configuration on one or more dynamic items for their participation in two-dimensional animation.


二、使用UIDynamic

TIPS:1、遵守了UIDynamicItem协议的对象才能做物理仿真,UIView遵守了,因此能做物理仿真。

2、仿真行为一般继承自UIDynamicBehavior,各个行为即可以独立,也可以组合做出复杂的效果。

UIDynamic提供了以下几种物理仿真行为
UIGravityBehavior:重力行为
UICollisionBehavior:碰撞行为
UISnapBehavior:捕捉行为
UIPushBehavior:推动行为
UIAttachmentBehavior:附着行为
UIDynamicItemBehavior:动力元素行为


一个简单的做重力下落的例子:

#import "XNViewController.h"

@interface XNViewController ()
//1.实例化仿真器
@property (nonatomic, strong) UIDynamicAnimator *animator;
@end

@implementation XNViewController

- (UIDynamicAnimator *)animator {
	if (!_animator) {
		_animator = [[UIDynamicAnimator alloc] initWithReferenceView:self.view];
	}
	return _animator;
}

/**点击屏幕后物体开始重力下落*/
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {

	// 2.创建物理仿真行为
	// 创建重力仿真行为 (Items : 仿真元素)
	UIGravityBehavior *gravity = [[UIGravityBehavior alloc] initWithItems:@[self.box]];

	// 创建碰撞仿真行为
	UICollisionBehavior *collision = [[UICollisionBehavior alloc] initWithItems:@[self.box, self.thing]];
	// 指定碰撞的范围
	collision.translatesReferenceBoundsIntoBoundary = YES;

	// 3.将物理仿真行为添加到物理仿真器中
	[self.animator addBehavior:gravity];
	[self.animator addBehavior:collision];
}

@end

点击屏幕后碰撞的效果如下:



源码下载:http://download.csdn.net/detail/xn4545945/7696865


官方文档上有个不错的例子:搜索UIKit Dynamics Catalog打开即可。

这里也有一个不错的例子:http://www.cocoachina.com/bbs/read.php?tid=168779


参考:苹果官方文档

转载请注明出处:http://blog.csdn.net/xn4545945  




IOS 30以上还有什版本

目前我知道:
★iOS 3:
3.0(7A341),3.0.1(7A400),3.1(7C144),3.1.2(7D11),3.1.3(7E18),3.2【仅iPad】,3.2.1【仅iPad】,3.2.2【仅iPad】
★iOS 4:
4.0(8A293),4.0.1(8A306),4.1(8B117),4.2.1(8C148),4.3(8F190),4.3.1(8G4),4.3.2(8H7),4.3.3(8J2),4.3.4(8K2),4.3.5(8L1)
★以下版本仅限Verizon版iPhone:4.2.6,4.2.7,4.2.8,4.2.9,4.2.10。
 
βios 三个版本的

【収録曲目】

1 βios <feat.Mika Kobayashi> Mika Kobayashi
2 α
3 Ω
4 Ready to Go <feat.David Whitaker> David Whitaker
5 friends <feat.mpi> mpi
6 VOiD
7 gエ19
8 θεοι
9 close your eyes <feat.Michiyo Honda> Michiyo Honda
10 Βασιλευζ
11 π
12 Release My Soul <feat.Aimee Blackschleger> エイミー?ブラックシュレイガー
13 κrOnё
14 Hill Of Sorrow <feat.mpi> mpi
15 Αποκσλυψιζ
16 Home ~in this corner~ <feat.Leina> Leina
17 Genesi§
18 βιοζ-δ <feat.Mika Kobayashi> Mika Kobayashi
19 Rё.L <feat.Cyua> Cyua

OST下载地址
h请ttp://1去15.com/fi掉le/c2中文bitj6w
 

http://www.bkjia.com/Androidjc/854677.htmlwww.bkjia.comtruehttp://www.bkjia.com/Androidjc/854677.htmlTechArticle【iOS】UIDynamic,iosuidynamic UIDynamic是从iOS 7开始引入的一种新技术,属于UIKit框架。可以认为是一种物理引擎, 能模拟和仿真现实生活中的物...

本文源自: 环亚国际



上一篇:2.SDK目录结构和adb工具及命令介绍,2.sdkadb 下一篇:没有了