通讯录之一Transform动画
来源:互联网 发布:软件 复制 绿色化 编辑:程序博客网 时间:2024/05/29 16:05
主要使用tramsform对控件做平移和缩放,只要计算好坐标位置即可
动画类
GLoginAnimationView.h
//// GLoginAnimationView.h// 通讯录//// Created by gaocai on 16/7/19.// Copyright © 2016年 gaocai. All rights reserved.//#import <UIKit/UIKit.h>@interface GLoginAnimationView : UIView/** * 获取对象静态方法 * * @return GLoginAnimationView */+ (instancetype)loadAnimationView;/** * 通过BOOL值去判断是遮眼动画还是不遮眼动画 * * @param isClose YES 为遮眼 NO为不遮眼 */- (void)startAnim:(BOOL)isClose;@end
GLoginAnimationView.m
//// GLoginAnimationView.m// 通讯录//// Created by gaocai on 16/7/19.// Copyright © 2016年 gaocai. All rights reserved.//#import "GLoginAnimationView.h"@interface GLoginAnimationView ()@property (weak, nonatomic) IBOutlet UIImageView *leftArm;@property (weak, nonatomic) IBOutlet UIImageView *rightArm;@property (weak, nonatomic) IBOutlet UIImageView *leftHand;@property (weak, nonatomic) IBOutlet UIImageView *rightHand;@property (weak, nonatomic) IBOutlet UIView *contentView;/** * 左右两手臂高度是一致的 */@property (nonatomic, assign) CGFloat armOffsetY;/** * 记录左边X轴的偏移量 */@property (nonatomic, assign) CGFloat leftArmOffsetX;/** * 记录右边X轴的偏移量 */@property (nonatomic, assign) CGFloat rightArmOffsetX;@end@implementation GLoginAnimationView/** * 做一些初始化操作 */- (void)awakeFromNib { //初始化手臂位置 //y轴偏移量 _armOffsetY = self.bounds.size.height - _leftArm.frame.origin.y; //左边手臂x轴偏移量 _leftArmOffsetX = -_leftArm.frame.origin.x; //右手臂x轴的偏移量 _rightArmOffsetX = _contentView.bounds.size.width - _rightHand.bounds.size.width - _rightArm.frame.origin.x; //平移左手臂 _leftArm.transform = CGAffineTransformMakeTranslation(_leftArmOffsetX, _armOffsetY); //平移右手臂 _rightArm.transform = CGAffineTransformMakeTranslation(_rightArmOffsetX, _armOffsetY);}+ (instancetype)loadAnimationView { return [[NSBundle mainBundle] loadNibNamed:@"GLoginAnimationView" owner:nil options:nil][0];}- (void)startAnim:(BOOL)isClose { if (isClose) {//遮眼 //清空形变(只要控件才可以形变) [UIView animateWithDuration:0.25 animations:^{ //手臂位置还原 _leftArm.transform = CGAffineTransformIdentity; _rightArm.transform = CGAffineTransformIdentity; //左手 _leftHand.transform = CGAffineTransformMakeTranslation(-_leftArmOffsetX, -_armOffsetY + 5); _leftHand.transform = CGAffineTransformScale(_leftHand.transform, 0.01, 0.01); //右手 _rightHand.transform = CGAffineTransformMakeTranslation(-_rightArmOffsetX, -_armOffsetY + 5); _rightHand.transform = CGAffineTransformScale(_rightHand.transform, 0.01, 0.01); }]; } else { [UIView animateWithDuration:0.25 animations:^{ // 平移左手臂 _leftArm.transform = CGAffineTransformMakeTranslation(_leftArmOffsetX, _armOffsetY); //平移右手臂 _rightArm.transform = CGAffineTransformMakeTranslation(_rightArmOffsetX, _armOffsetY); //手位置还原 _leftHand.transform = CGAffineTransformIdentity; _rightHand.transform = CGAffineTransformIdentity; }]; }}@end
0 0
- 通讯录之一Transform动画
- UIView 动画 transform CGAffineTransformIdentity;
- 动画transform属性
- Transform执行动画
- View.Transform动画
- css3动画-transform属性
- ios transform 动画效果
- css3 transform做动画
- css3-transform动画样式
- Android学习之一:通讯录
- transform的使用(动画)
- css3动画效果transform transition
- 漫谈CSS transform动画技术
- transform仿支付宝咻一咻动画
- CSS3 3D动画 transform
- css3 transform animation 动画 小结
- CSS3 Transform 变形(transform)、转换(transition)和动画(animation)
- IE9兼容性CSS之一transform:rotate
- sphinx 配置文件全解析
- JSON 解析小例子
- 公司的法律环境
- models.DateTimeField(auto_now_add=True)与models.DateTimeField(auto_now=True)
- [Ext4] Ext4文件系统分析系列文章
- 通讯录之一Transform动画
- django model meta类定义abstract = True
- 常用类 Math类
- 不知所云
- [文章摘要] Stories in GeoTime
- 常用类 StringBuffer类、StringBuilder类、String类
- Android 布局管理器
- leetcode-283. Move Zeroes c语言
- Android 圆形的TextView