【问题标题】:Change cell height while scrolling a UITableView滚动 UITableView 时更改单元格高度
【发布时间】:2012-07-22 21:07:04
【问题描述】:

是否可以在滚动 UITableView 时动态更改单元格的高度?

当用户将滚动位置向下拖过顶部时,我需要更改多个单元格的高度。我可以通过发出 reloadData 成功地做到这一点,但是它非常突然,因为单元格刚刚消失。

我也尝试过重新加载单元格并在表格视图上运行开始/结束更新,但是在这两种情况下,动画都会将滚动视图发送回顶部。

我想为单元格高度变化设置动画,而不会弄乱正在进行的拖动的当前内容偏移量。

提姆

【问题讨论】:

    标签: uitableview


    【解决方案1】:

    使用 UITableViewDelegate 并实现方法

    - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
    

    这解决了您的问题? 如果它不能解决您的问题,请尝试通过示例/图片更好地解释您的目标。

    【讨论】:

    • 嗨。不,恐怕这根本不能回答这个问题。我知道如何设置单元格高度,但我问的是如何在滚动操作期间通过动画动态更改它。
    • 什么应该触发动画?一旦你知道如何触发它,只需更新用于存储特定单元格高度的变量,而不是使用:[tableView beginUpdates];[tableView endUpdates];
    • 嗨。这是一个非常古老的问题 - 如果其他人对此感兴趣,我会做出回应。重新阅读问题的目标似乎很明确 - 当用户使用他们的手指滚动表格时,我需要(ed)根据滚动位置更改某些行的高度。我还声明我尝试使用开始/结束更新块,但失败了。
    • 使用motionEnded:withEvent:touchesEnded:withEvent:检查你的单元格是否可见(如果它的indexPath在NSArray[tableView indexPathsForVisibleRows]中),得到单元格的位置,剩下的就可以轻松完成了。这是您问题的答案?
    • 不,我想在用户拖动时制作动画,而不是在他们停下后。
    猜你喜欢
    • 2014-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多