ami*_*rfl 12 tableview tableviewcell ios ios8
我已经使用iOS实现了iOS 8的自动动态tableview单元格高度
self.tableView.rowHeight = UITableViewAutomaticDimension;
Run Code Online (Sandbox Code Playgroud)
对于不支持自动动态单元格高度的iOS 8之前的版本,我重写了heightForRowAtIndexPath方法.
这与我的做法类似:在UITableView中使用自动布局进行动态单元布局和可变行高
问题是如何编写使用iOS 8自动单元格高度的代码,但是为早期iOS版本覆盖heightForRowAtIndexPath.仅当iOS版本小于8时,我才会喜欢我的自定义heightForRowAtIndexPath方法.有关如何执行此操作的任何建议吗?
rma*_*ddy 19
一种解决方案是覆盖respondsToSelector:视图控制器中的方法.NO检查heightForRowAtIndexPath:方法时,请在iOS 8下返回.
- (BOOL)respondsToSelector:(SEL)selector {
static BOOL useSelector;
static dispatch_once_t predicate = 0;
dispatch_once(&predicate, ^{
useSelector = [[UIDevice currentDevice].systemVersion floatValue] < 8.0 ? YES : NO;
});
if (selector == @selector(tableView:heightForRowAtIndexPath:)) {
return useSelector;
}
return [super respondsToSelector:selector];
}
Run Code Online (Sandbox Code Playgroud)
这样,当表视图调用时,如:
if ([self.delegate respondsToSelector:@selector(tableView:heightForRowAtIndexPath:)]) {
}
Run Code Online (Sandbox Code Playgroud)
您的代码将NO在iOS 8或更高版本以及YESiOS 7或更早版本下返回.
| 归档时间: |
|
| 查看次数: |
1275 次 |
| 最近记录: |