从现在开始,我使用自定义图像作为新类中的分隔符。 但是有很多地方我使用默认的UITableView分隔符。 在ios 8上,我使用了以下代码来成功处理。
-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
// Remove seperator inset
if ([cell respondsToSelector:@selector(setSeparatorInset:)]) {//it handles only in ios 7
[cell setSeparatorInset:UIEdgeInsetsZero];
}
// Prevent the cell from inheriting the Table View's margin settings
if ([cell respondsToSelector:@selector(setPreservesSuperviewLayoutMargins:)]) {
[cell setPreservesSuperviewLayoutMargins:NO];
}
// Explictly set your cell's layout margins
if ([cell respondsToSelector:@selector(setLayoutMargins:)]) {
[cell setLayoutMargins:UIEdgeInsetsZero];
}
}
但我在iOS 6和7上遇到编译时错误(没有选择器找到setPreservesSuperviewLayoutMargins),显然会在iOS 5上出现此错误。 我想
if ([cell respondsToSelector:@selector(setLayoutMargins:)])
将处理此方案。但它失败
那么我如何进行检查,以便在版本5,6和7中跳过代码setPreservesSuperviewLayoutMargins和setLayoutMargins。
感谢