- UIDynamic是物理引擎,模仿物理效果
- 知名2D物理引擎 Box2d Chipmunk
- 只有遵守了UIDynamicItem协议的对象
UIVIew默认遵守了协议
UICollectionViewLayouetAttributes已经遵循了
- 重力行为
UIGravityBehavior 重力行为
UICollisionBehavior碰撞行为
- UIDynamicAnimator *animator = [[UIDynamicAnimator alloc] initWithReferenceView:self.view];
UIGravityBehavior *grivity = [[UIGravityBehavior alloc] initWithItems:@[self.myView];
grivity.gravityDirection = CGVectorMake( ,);
grivity.angle = 0;弧度方向 跟上面的设置有矛盾,哪个在下面哪个起作用M_PI_2
grivity.magnitude = 1; 设置重力加速度 和gravityDiretion有矛盾
[animator addBehavior:grivity];
- 弹性行为UICollisionBehavior *collision = [[UICollisionBehavior alloc] initWithItems:--];
collision.translatesRefrernceBoundsIntoBoundary = YES;
[self.animator addBehavior:collision];
UIDynamicItemBehavior *item =UIDynamicItemBehavior alloc] initWithItems:@[self.myView]];辅助行为
item.resistance = 1;阻力
item.elasticity = 0.5;弹性系数
- 通常用辅助行为来设置弹性系数
只要是行为就要添加
- [collision addBoundaryWithIdentifier:@"c1" fromePoint:CGPointMake toPoint;自定义一条线为边界
- UIBezierPath *path = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(20, 300, 400, 150)];
[collision addBoundaryWithIdentifier:@"c2" forPath:path];
- 检测碰到的是哪一根线 设置代理<UICollisionDelegate>
collision.collisionDelegate = self;
- (void)collisionBehavior -------withBoundaryIdentifier当碰撞的时候就会调用
beganContactForItem:标示碰撞的物体
identifier:标示边界的标示符
atPoint:标示碰撞的点
UIView *view = (UIView*) item; 要强转
- 碰撞模式
collision.collisionMode = UICollisionBehaviiorModeItems; 只和物体碰撞
Boundaries只和边界碰撞
everything都碰撞
- item.allowsrotation = YES 是否旋转
- 捕捉行为 UISnapBehavior *snap = [[UISnapBehavior alloc]initWithItem:self.myView snapToPoint:CGPoint]; 比如移动到手指所触摸的点
阻力系数snap.damping = 0.5; 取值范围是0.5~1; 默认应该是0.5
- 附着行为 需要重力行为initWIthitem:标示产生附着行为的物体 attachedToAnchor:附着的点 没有重力行为附着行为没效果
UIAttachmentBehavior *attachment = [[UIAttachmentBehavior alloc] initWithItem:self.myView attachedToAnchor:point];
- 只要重力行为有效果,就会调用 [ --- setAction:^{ 可以在这个方法中划线 }];
- 自定义了view为CZView 在控制器要获取相应的定义的变量要强转CZView = (CZView *)self.view;
- attachiment.damping = 0.5 阻尼系数
attachiment.frequency = 0.5频率
attachiment.length 是附着点和中心点得距离
- 中心点偏移的改变
UIAttachmentBehavior *attachment = [[UIAttachmentbehavior alloc] initWithItem:@[self.myView] offsetFromCenter:UIOffset attachedToAnchor:CGPoint];
- 推力行为[self.view converPoint:(CGPoint) fromView:(UIView*)]; 把fromView中的点坐标转换成self.view的点坐标。
- UIPushBehavior *push = [[UIPushBehavior alloc] initWithItems:@[] mode:UIPushBehaviorMode Continuous]; Insantaneous 一次性会回去
触摸点 和物体的中心点进行计算 加速度方向
方向 push.pushDirection = CGVectorMake(pushX, pushY);
加速度 push.magnitude = sqrt();
- [NSURL fileURLWithPath:]本地资源
[NSURL urlWith:http://]网络资源
- 改变原来附着点得锚点就可以移动原来的画面了
self.attachment.anchorPoint = point;
- 移除附着点
[self.animator remove ----];
- 自定义layer 中要创建layer 用的方法是-(void)drawInContext:(CGContextRef)ctx{};
记住在自定义中的地方要重绘。[layer setNeedsDisplay] view也有这个方法
代理或者继承都要重绘
- 通过代理方法也可以在控制器中进行绘制图形 创建layer
- keyAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];中间快两边慢
-
- UIDynamic是物理引擎,模仿物理效果
- 知名2D物理引擎 Box2d Chipmunk
- 只有遵守了UIDynamicItem协议的对象
UIVIew默认遵守了协议
UICollectionViewLayouetAttributes已经遵循了
- 重力行为
UIGravityBehavior 重力行为
UICollisionBehavior碰撞行为
- UIDynamicAnimator *animator = [[UIDynamicAnimator alloc] initWithReferenceView:self.view];
UIGravityBehavior *grivity = [[UIGravityBehavior alloc] initWithItems:@[self.myView];
grivity.gravityDirection = CGVectorMake( ,);
grivity.angle = 0;弧度方向 跟上面的设置有矛盾,哪个在下面哪个起作用M_PI_2
grivity.magnitude = 1; 设置重力加速度 和gravityDiretion有矛盾
[animator addBehavior:grivity];
- 弹性行为UICollisionBehavior *collision = [[UICollisionBehavior alloc] initWithItems:--];
collision.translatesRefrernceBoundsIntoBoundary = YES;
[self.animator addBehavior:collision];
UIDynamicItemBehavior *item =UIDynamicItemBehavior alloc] initWithItems:@[self.myView]];辅助行为
item.resistance = 1;阻力
item.elasticity = 0.5;弹性系数
- 通常用辅助行为来设置弹性系数
只要是行为就要添加
- [collision addBoundaryWithIdentifier:@"c1" fromePoint:CGPointMake toPoint;自定义一条线为边界
- UIBezierPath *path = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(20, 300, 400, 150)];
[collision addBoundaryWithIdentifier:@"c2" forPath:path];
- 检测碰到的是哪一根线 设置代理<UICollisionDelegate>
collision.collisionDelegate = self;
- (void)collisionBehavior -------withBoundaryIdentifier当碰撞的时候就会调用
beganContactForItem:标示碰撞的物体
identifier:标示边界的标示符
atPoint:标示碰撞的点
UIView *view = (UIView*) item; 要强转
- 碰撞模式
collision.collisionMode = UICollisionBehaviiorModeItems; 只和物体碰撞
Boundaries只和边界碰撞
everything都碰撞
- item.allowsrotation = YES 是否旋转
- 捕捉行为 UISnapBehavior *snap = [[UISnapBehavior alloc]initWithItem:self.myView snapToPoint:CGPoint]; 比如移动到手指所触摸的点
阻力系数snap.damping = 0.5; 取值范围是0.5~1; 默认应该是0.5
- 附着行为 需要重力行为initWIthitem:标示产生附着行为的物体 attachedToAnchor:附着的点 没有重力行为附着行为没效果
UIAttachmentBehavior *attachment = [[UIAttachmentBehavior alloc] initWithItem:self.myView attachedToAnchor:point];
- 只要重力行为有效果,就会调用 [ --- setAction:^{ 可以在这个方法中划线 }];
- 自定义了view为CZView 在控制器要获取相应的定义的变量要强转CZView = (CZView *)self.view;
- attachiment.damping = 0.5 阻尼系数
attachiment.frequency = 0.5频率
attachiment.length 是附着点和中心点得距离
- 中心点偏移的改变
UIAttachmentBehavior *attachment = [[UIAttachmentbehavior alloc] initWithItem:@[self.myView] offsetFromCenter:UIOffset attachedToAnchor:CGPoint];
- 推力行为[self.view converPoint:(CGPoint) fromView:(UIView*)]; 把fromView中的点坐标转换成self.view的点坐标。
- UIPushBehavior *push = [[UIPushBehavior alloc] initWithItems:@[] mode:UIPushBehaviorMode Continuous]; Insantaneous 一次性会回去
触摸点 和物体的中心点进行计算 加速度方向
方向 push.pushDirection = CGVectorMake(pushX, pushY);
加速度 push.magnitude = sqrt();
- [NSURL fileURLWithPath:]本地资源
[NSURL urlWith:http://]网络资源
- 改变原来附着点得锚点就可以移动原来的画面了
self.attachment.anchorPoint = point;
- 移除附着点
[self.animator remove ----];
- 自定义layer 中要创建layer 用的方法是-(void)drawInContext:(CGContextRef)ctx{};
记住在自定义中的地方要重绘。[layer setNeedsDisplay] view也有这个方法
代理或者继承都要重绘
- 通过代理方法也可以在控制器中进行绘制图形 创建layer
- keyAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];中间快两边慢
- toolBar要设置高度要不然是透明的
- NSIndexPath *path = [self.tableView indexPathForSelectedRow];
- json解析
1.获取路径转成 NSData 2进制
NSData *data = [NSData dataWithContentsOfFile:path];
2.第二个参数返回可变的容器 数组或者字典
[NSJSONSerialization JSONObjectWithData:data options:NSJONReadingMutableCont
3.再就和plist一样
ainers error:返回错误的指针
忽略警告方法
- 新特性应该以沙盒中和手机版本号进行比较
- 更新的时候沙盒的东西是不变的
- 获取info.plist
NSDictionary * idct = [NSBundle mainBundle].infoictionary;
- 查看key右键info.plist查看源代码 [UIApplication shareApplication].keyWindow
-
[UIApplication shareApplication].window
self.view.window当前view所在的window
- webView加载网页
NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"];ios9默认不允许加载http 只允许https
家在本地的是
NSURL *url = [NSBundle mainBundle] URLForResource:@"help.html", withExtension
NSURLRequest *req = [NSURLRequest requestWithURL:url];
[webView loadRequest:req];
window.οnlοad= function(){
document.location.href= '#xl';
}
- 加载网页是在加载网页之后用delegate,
- (void)webViewDidFinishLoad:(UIWebView *)webView{};
- 用webView去执行js代码
- NSString *code = @"document.location.href = '#xl';
[webView stringByEvaluatingJavaScriptFromString:code];
5.bundle display name改名字
- 改名字要新建strings 名字是InfoPlist.strings
- gitHub搜索ios-system
- 想看字典里边的内容 [dict description];
- residemenu 侧滑菜单 qq
16其他UI内容
最新推荐文章于 2024-04-28 17:32:29 发布