Xcode5 & iOS7中UITableView中新增UITableViewWrapperView

Xcode5 & iOS7中UITableView中新增UITableViewWrapperView_第1张图片
image.png

昨天用Xcode5&iOS7调试时发现程序会挂在一个地方:

UITableView *tableView = (UITableView *)self.superview;
[tableView deselectRowAtIndexPath:[tableView indexPathForCell:self] animated:YES];

其中self是一个扩展自UITableViewCell的子类,出错的提示是UITableViewWrapperView没有deselectRowAtIndexPath的方法,后来才反应过来,iOS7中UITableView有一个subview是UITableViewWrapperView,它是所有UITableViewCell的superview。

后来代码改成这样:

UITableView *tableView = (UITableView *)self.superview;
if (![tableView isKindOfClass:[UITableView class]]) tableView = (UITableView *)tableView.superview;
[tableView deselectRowAtIndexPath:[tableView indexPathForCell:self] animated:YES];

转自:肆无忌惮.

你可能感兴趣的:(Xcode5 & iOS7中UITableView中新增UITableViewWrapperView)