【问题标题】:Expanding UITableViewCell on Tap?在点击时扩展 UITableViewCell?
【发布时间】:2012-11-22 21:41:34
【问题描述】:

当我点击一个UITableView 单元格时,我需要展开它(动画也一样)。但是我不知道被点击的单元格,我在这里看到了答案:Can you animate a height change on a UITableViewCell when selected?

这似乎是一个非常受欢迎的答案,不仅仅是在问题中。但是,我需要获取单元格,那么heightForRowAtIndexPath方法中如何获取单元格呢?

因为我已经尝试过了:

UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];

但是,在 heightForRowAtIndexPath 方法中使用它会使应用程序在第一次运行时(当视图加载时)崩溃,我认为它会陷入无限循环。

无论如何,如果我采用这种方法,你会建议我如何解决这个问题?我需要访问该单元格。或者您将如何扩展您的 tableview 单元格(动画)?

【问题讨论】:

  • 您能否使用自定义的UITableViewCell 子类来覆盖setSelected:animated:setHighlighted:animated: 来执行动画,而不是在高度计算方法中触发或执行它们?据我所知,只有在点击单元格时才会调用带有 highlight=YES 的 setHighlighted:animated:,因此如果您覆盖它并且不调用 super 实现,它可能是执行您的 on- 的有用钩子点击动画。

标签: iphone objective-c ipad uitableview


【解决方案1】:

继续调整高度。

我建议尽可能多地从自动调整蒙版中获得更多信息,因为它们过去对我很有效。

如果您需要更细粒度的控制,您可以创建一个子类并覆盖setFrame: 方法以找出帧何时改变大小,然后在那里适当地设置动画。

【讨论】:

    猜你喜欢
    • 2011-06-05
    • 1970-01-01
    • 2012-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-25
    • 1970-01-01
    • 2013-11-28
    相关资源
    最近更新 更多