如何为UITableView部分页脚设置动画

时间:2016-03-31 21:36:14

标签: ios objective-c uitableview

我正在尝试为UITableView部分页脚设置动画。 我尝试了以下代码:

- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section {
CustomView *footer = [[CustomView alloc]initWithFrame:CGRectZero
                                            labelText:@"I am a label in a footer"];
footer.label.alpha = 0.0f;
[UIView animateWithDuration:5.0f
                      delay:0.0f
                    options:UIViewAnimationOptionCurveLinear
                 animations:^{
                     footer.label.alpha = 1.0f;
                 }
                 completion:nil];

return footer;
}

但页脚显示没有动画。为UITableView部分页脚设置动画的正确方法是什么?我相信这是可能的,但无法找到答案。

1 个答案:

答案 0 :(得分:2)

尝试使用tableView:willDisplayFooterView:forSection:方法进行动画制作。在您正在使用的方法中,视图尚未插入到视图层次结构中(因此不会在窗口中),因此动画确实无法执行任何操作(并且可能会通过将其插入到视图中来取消它们)。 -willDisplay *变体实际上是应该配置可见UI属性的位置,因为它应该在该点的视图层次结构中,并且应该设置UIAppearance值之类的内容,以便稍后不会覆盖您的设置。

您通常可以在cellForRowAtIndexPath:方法(或本例中为viewForFooter)中配置属性,但并非总是如此 - 绝对是动画。