iOS功能模块收录iOS 开发每天分享优质文章首页投稿(暂停使用,暂停投稿)

有关卡片动画的解读

2016-09-27  本文已影响163人  IIronMan

1.先看看试效果图

Untitled11卡片动画.gif

卡片其实是利用坐标的移动,动画来实现,以及缩放率(下面先讲解怎么去使用它)

1.首先把.pch 里面的(下面的放到你的工程里面的pch)

#import "CardHeader.h"
#define iPhone5AndEarlyDevice (([[UIScreen mainScreen] bounds].size.height*[[UIScreen mainScreen] bounds].size.width <= 320*568)?YES:NO)
#define Iphone6 (([[UIScreen mainScreen] bounds].size.height*[[UIScreen mainScreen] bounds].size.width <= 375*667)?YES:NO)

3.把下面的类导入工程

导入项目的类

4.在其他控制器跳转到 JLCardViewController.h 控制器(数据都是服务器的数据)

在跳转JLCardViewController.h控制器之前的控制里面传参数(首先是图片,其次是姓名,性别,手机号等等都可以传)

定义4个存值的数组

//头像
@property(nonatomic,strong) NSArray *arrryPicture;
//名字
@property(nonatomic,strong) NSArray *arrryName;
//性别
@property(nonatomic,strong) NSArray *arrrysex;
//手机号
@property(nonatomic,strong) NSArray *arrryphone;

当然在JLCardViewController.h控制器里面我也进行了数组接收这些值

调到控制器的方法走下面的(数组里面的值都是网络请求回来的)

JLCardViewController *jLCardViewController = [JLCardViewController new];
//图片
jLCardViewController.pictureArray = _arrryPicture;
//名字
jLCardViewController.nameArray = _arrryName;
//电话号码
jLCardViewController.phoneArray = _arrryphone;
//性别
jLCardViewController.sexArray = _arrrysex;

[self.navigationController pushViewController:jLCardViewController animated:YES];

5.在 JLCardViewController里面赋值以及进行展示和操作

在229行进行跳转(里面有方法的执行),我采用的是block 进行传值

在这里给大家普及一下block常用的方法(讲解两种)
大家要防止循环引用(Wself这个名字自己定义)

    __weak typeof(self) Wself = self;
 1.在.h里面(建立吧bock)和设置block的方法
  typedef void(^BLOCK)(NSString *name);
  -(void)setBlock:(BLOCK)block;(在.m属性需要实现)
 2.在.m里面进行实现block方法和属性的转换
  先利用BLOCK设置一个属性 BLOCK valueBlock;
 -(void)setBlock:(BLOCK)block
 {
       valueBlock = block;
 }
 3.在点击的调用的方法里面进行调用

  valueBlock(这里放一个字符串传到外面);
 4.在外面调用

 [类的对象 setBlock:^(NSString *name) {
        
      这里进行执行block这个方法
 }];

6.还是讲讲咱们的卡片

7.下最后给大家4个demo(前两个本人亲自在此封装的)

1.网络数据的demo
2.本地数据的demo
3.其他人的卡片
4.无规则的卡片

8.下面里面的小方法

<1>.屏幕判断

 #define iPhone5AndEarlyDevice (([[UIScreen mainScreen] bounds].size.height*[[UIScreen mainScreen] bounds].size.width <= 320*568)?YES:NO)
 #define Iphone6 (([[UIScreen mainScreen] bounds].size.height*[[UIScreen mainScreen] bounds].size.width <= 375*667)?YES:NO)
上一篇 下一篇

猜你喜欢

热点阅读