作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个自定义的 UITableViewCell
,它在选择上进行了扩展。我想要做的是让单元格高度恢复正常(44),如果被选择的单元格被重新选择。这是我的代码:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
if ([indexPath isEqual:self.selectedCell] && ![[tableView indexPathForSelectedRow] isEqual:indexPath]) {
return 100;
}
return 44;
}
代码运行良好,但似乎忽略了 if 语句中的第二项。显然我做错了。有办法解决吗?
最佳答案
我不知道你为什么拿cell和indexPath比较。
[indexPath isEqual:self.selectedCell]
如果您只想展开选定的单元格。
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
if ([[tableView indexPathForSelectedRow] isEqual:indexPath])
{
return 100;
}
return 44;
}
UITableViewDelegate 有取消选择的方法
-(void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath
你需要在这个委托(delegate)中重新加载单元
[tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
关于ios - 如何检查所选单元格是否被重新选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28357986/
我正在尝试用 Swift 编写这段 JavaScript 代码:k_combinations 到目前为止,我在 Swift 中有这个: import Foundation import Cocoa e
我是一名优秀的程序员,十分优秀!