【问题标题】:Animating a view inside a uitableviewcell为 uitableviewcell 内的视图设置动画
【发布时间】:2013-02-11 21:58:44
【问题描述】:

我有嵌套的表格视图,因此我可以在每个表格视图的单元格中都有一个横向滚动的表格视图。我想在第一行添加一个动画,基本上来回移动一个视图。它正在工作,有点:

    - (UITableViewCell *)tableView:(UITableView *)tableView willDisplayCell: (BannerCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (indexPath.row == 0){
        [UIView animateWithDuration:3
                         animations:^{
                             [UIView setAnimationRepeatCount: 100];
                             cell.handView.frame = CGRectMake(cell.handView.frame.origin.x-100, cell.handView.frame.origin.y, 32, 32);
                             cell.handView.alpha = 0.0f;

                         }
                         completion:^(BOOL finished){

                         }];
    }
    else cell.handView.hidden = YES;

    return cell;

}

除了在第一次加载我的 tableview 时,我想要动画的视图甚至都没有显示,当我滚动到一个新单元格并返回到第一个单元格时,它会显示一个很好的动画。不知道为什么它在第一次加载时不能按预期运行。

【问题讨论】:

    标签: ios uitableview uiviewanimation


    【解决方案1】:

    这个委托方法真的被调用了吗?因为执行此操作的实际委托方法具有以下签名:

    - (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
    

    您的方法返回一个UITableViewCell 对象。我好像没有找到这样的delgate方法。

    【讨论】:

    • 方法被调用。我换了你的方法,同样的问题。它确实有效,只是不是在第一次加载 tableview 时,我必须向下滚动并返回到第一个单元格。
    • 并且该方法在视图加载时被调用,我也验证了它不是动画,而是完全删除视图
    • 首先你应该使用我说的方法。它是 TableView 自动调用的 UiTableViewDelegate 方法。你不必打电话给这个。其次,因为您是在显示单元格之前制作动画,所以您不会第一次看到它。
    • 我看到了,不幸的是我真正需要的是 didEndDisplayingCell 但它是一个 iOS 6+ 的方法,不会削减它。感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-18
    相关资源
    最近更新 更多