Iphone iOS-设置页脚高度变化的动画

Iphone iOS-设置页脚高度变化的动画,iphone,objective-c,xcode,uitableview,animation,Iphone,Objective C,Xcode,Uitableview,Animation,我有一个应用程序有3个部分,每个部分都有一个页脚。我已经通过ViewForFooterInstitution建立了这一点,并使用HeightForFooterInstitution为每个设置了高度 这些页脚的大小不是固定的,因为它们会根据某些情况改变高度。当高度改变时,这是一个相当起伏的动画。它不是显示高度变化,而是从旧高度跳到新高度 if (condition == YES) { return 45; } else { return 70; } 是否有一种方法可以设置此高度

我有一个应用程序有3个部分,每个部分都有一个页脚。我已经通过ViewForFooterInstitution建立了这一点,并使用HeightForFooterInstitution为每个设置了高度

这些页脚的大小不是固定的,因为它们会根据某些情况改变高度。当高度改变时,这是一个相当起伏的动画。它不是显示高度变化,而是从旧高度跳到新高度

if (condition == YES) {
    return 45;
}

else {
    return 70;
}

是否有一种方法可以设置此高度更改的动画,以提供更平滑的体验?谢谢

创建自定义页脚视图并保留其本地变量

- (UIView*)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section {
    return self.footerView;
}
那你就可以打电话了

[self.footerView updateHeightForCondition:YES]; //or NO
根据需要

就像是

[UIView animateWithDuration:0.5f animations:^{
    self.frame = CGRectMake(self.frame.origin.x, self.frame.origin.y, self.frame.size.width, condition ? 45 : 70);
}];

如果覆盖viewForFooter,则不需要再覆盖HeightForFooterInstitution或TitleForFooterInstitution。

这适用于设置单元格高度更改的动画,我看不出为什么它不适用于页眉和页脚高度。我现在无法亲自测试,所以如果它不起作用,我深表歉意-让我知道,我会删除它

对模型或控制器属性进行任何更改(以便下次调用heightForFooter..时,将返回新值)。然后,简单地呼叫:

[self.tableView beginUpdates];
[self.tableView endUpdates];

调用这两个方法时中间没有任何内容似乎不常见,但这会导致表重新查询其委托和数据源以获得新的大小,并将动画设置为新的大小。通常您会添加或删除行,但也包括更改大小

你试过使用类似于动画单元格高度变化的解决方案吗?哈,我只是把它放在下面的答案中。