iOS之TableViewCell加载动画

1、
这里写图片描述
添加代理方法
-(void)tableView:(UITableView )tableView willDisplayCell:(UITableViewCell )cell forRowAtIndexPath:(NSIndexPath *)indexPath{

CATransform3D rotation;
rotation = CATransform3DMakeRotation( (90.0*M_PI)/180, 0.0, 0.7, 0.4);
rotation.m34 = 1.0/ -600;

cell.layer.shadowColor = [[UIColor blackColor]CGColor];
cell.layer.shadowOffset = CGSizeMake(10, 10);
cell.alpha = 0;
cell.layer.transform = rotation;
cell.layer.anchorPoint = CGPointMake(0, 0.5);


[UIView beginAnimations:@"rotation" context:NULL];
[UIView setAnimationDuration:0.8];
cell.layer.transform = CATransform3DIdentity;
cell.alpha = 1;
cell.layer.shadowOffset = CGSizeMake(0, 0);
[UIView commitAnimations];

}

2、3D缩放效果
这里写图片描述
在tableViewCell代理方法中添加

//设置cell的显示动画为3D缩放
    //xy方向缩放的初始值为0.1
    cell.layer.transform = CATransform3DMakeScale(0.1, 0.1, 1);

    //设置动画时间为0.25秒,xy方向缩放的最终值为1
    [UIView animateWithDuration:0.25 animations:^{

        cell.layer.transform = CATransform3DMakeScale(1, 1, 1);

     }completion:^(BOOL finish){

     }];

3、
这里写图片描述

//给cell添加动画
-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
    //设置Cell的动画效果为3D效果
    //设置x和y的初始值为0.1;
    cell.layer.transform = CATransform3DMakeScale(0.1, 0.1, 1);
    //x和y的最终值为1
    [UIView animateWithDuration:1 animations:^{
        cell.layer.transform = CATransform3DMakeScale(1, 1, 1);
    }];
}

更多动画自己发现吧,附带推荐一个mac截取gif动画的软件(免费的)。
这里写图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现删除成功后让 `CreateOutboundViewController` 中的按钮显示,你可以在 `CreateOutboundDeletePopupView` 中添加一个代理方法,并在 `CreateOutboundViewController` 中实现这个代理方法。当从 `CreateOutboundDeletePopupView` 中删除成功后,就可以调用 `CreateOutboundViewController` 中的代理方法,来更新 `CreateOutboundViewController` 中的按钮状态。 具体的实现步骤如下: 1. 在 `CreateOutboundDeletePopupView` 中添加一个代理方法,例如: ``` @protocol CreateOutboundDeletePopupViewDelegate <NSObject> - (void)outboundRecordDeleted; @end @interface CreateOutboundDeletePopupView : UIView @property (nonatomic, weak) id<CreateOutboundDeletePopupViewDelegate> delegate; // ... @end ``` 2. 在 `CreateOutboundDeletePopupView` 中,在成功删除后调用代理方法: ``` if (deleteSuccess) { [self.delegate outboundRecordDeleted]; } ``` 3. 在 `CreateOutboundViewController` 中实现代理方法: ``` @interface CreateOutboundViewController () <CreateOutboundDeletePopupViewDelegate> // ... @end @implementation CreateOutboundViewController - (void)outboundRecordDeleted { // 更新按钮状态 [self.tableView reloadData]; // 关闭弹窗 [self.popupView dismiss]; } // ... @end ``` 4. 将 `CreateOutboundViewController` 对象设置为 `CreateOutboundDeletePopupView` 的代理: ``` CreateOutboundDeletePopupView *popupView = [[CreateOutboundDeletePopupView alloc] init]; popupView.delegate = self; ``` 5. 在 `CreateOutboundViewController` 的 `cellForRowAtIndexPath` 方法中更新按钮状态: ``` - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { // ... UIButton *deleteButton = [cell viewWithTag:1]; deleteButton.hidden = outboundRecord.deleted; // ... } ``` 注意,如果你的 `CreateOutboundViewController` 中的数据源是从后台获取的,那么你在成功删除后,还需要向后台重新请求数据并刷新表格,以确保表格数据与后台同步。关于代码放在哪个文件中,以上实现是在 `CreateOutboundViewController` 和 `CreateOutboundDeletePopupView` 两个文件中实现的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值