在点击时扩展 UITableViewCell?
Posted
技术标签:
【中文标题】在点击时扩展 UITableViewCell?【英文标题】:Expanding UITableViewCell on Tap? 【发布时间】: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- 的有用钩子点击动画。
【参考方案1】:
继续调整高度。
我建议尽可能多地从自动调整蒙版中获得更多信息,因为它们过去对我很有效。
如果您需要更细粒度的控制,您可以创建一个子类并覆盖setFrame:
方法以找出帧何时改变大小,然后在那里适当地设置动画。
【讨论】:
以上是关于在点击时扩展 UITableViewCell?的主要内容,如果未能解决你的问题,请参考以下文章
按单词包装 UILabel 并以编程方式扩展 UITableViewCell 高度
向左滑动时未剪切子视图以删除 UITableViewCell
RxSwift之订阅UITableViewCell里的按钮点击事件