gpt4 book ai didi

ios - 无需滚动即可为 UITableViewCell 设置动画高度更改

转载 作者:可可西里 更新时间:2023-11-01 04:41:56 27 4
gpt4 key购买 nike

我知道如何使用此处看到的方法为 UITableViewCell 的高度变化设置动画:Can you animate a height change on a UITableViewCell when selected?

但是,使用该方法时,UITableView 将同时滚动,我不希望它这样做。

我有一个只有很少单元格的 UITableView;它占用的空间小于屏幕高度。底部单元格有一个 UITextField,当它开始编辑时,我手动设置 UITableView 的内容偏移量,以便带有 UITextField 的单元格滚动到顶部。然后,根据 UITextField 中的输入,我可能想要增加 UITableViewCell 的大小以显示更多或更少的额外选项。

问题是,当为这个变化设置动画时,它会重新定位 UITableView,这样我的 UITextField 就不再位于顶部。

这就是我正在做的,或多或少:

self.customAmountCellSize = height;

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

我也试过

self.customAmountCellSize = height;
CGPoint originalOffset = self.tableView.contentOffset;

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

[self.tableView setContentOffset:originalOffset animated:NO];

我想要行高动画,我不希望 UITableView 滚动。

有什么想法吗?

最佳答案

您遇到的问题似乎是您的表格 View 滚动到底部,因此当您更新其内容时,它会尝试修复该问题。

有两种方法可以防止滚动:

  1. 将表格 View 的内容插入设置为初始空白的高度:

    self.tableView.contentInset = UIEdgeInsetsMake(0, 0, verticalGap, 0);
  2. 添加一个与垂直间隙高度相同的空页脚 View :

    self.tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 0, verticalGap)];

在这两种情况下,您都需要计算要达到的垂直空间。完成后,您需要将 contentInsettableFooterView 恢复到其原始状态。

关于ios - 无需滚动即可为 UITableViewCell 设置动画高度更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18775294/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com