以下在视图中会出现
[SYPTableView setSeparatorInset:UIEdgeInsetsZero];
在 iOS 7 上运行良好,但在 6.1 上它引发了异常:
NSInvalidArgumentException', reason: '-[UITableView setSeparatorInset:]: unrecognized selector sent to instance
我的目的是删除单元格边框。
以下在视图中会出现
[SYPTableView setSeparatorInset:UIEdgeInsetsZero];
在 iOS 7 上运行良好,但在 6.1 上它引发了异常:
NSInvalidArgumentException', reason: '-[UITableView setSeparatorInset:]: unrecognized selector sent to instance
我的目的是删除单元格边框。
该separatorInset
属性在UITableView
iOS 7.0 上可用,这就是您在 iOS 6.1 上获得例外的原因。
从您发布的代码中,您似乎想要删除 iOS 7 中引入的默认插图。iOS 6 中不存在此类插图,因此您只需删除 iOS 7 中的插图。
您可以检查表格视图是否响应setSeparatorInset:
doing
if ([SVPTableView respondsToSelector:@selector(setSeparatorInset:)]) {
[SYPTableView setSeparatorInset:UIEdgeInsetsZero];
}
如果您在 ios 6 等中工作,请使用以下内容
SEL selector;
selector=NSSelectorFromString(@"setSeparatorInset:");
if([table respondsToSelector:selector])
{
@try {
dispatch_async(dispatch_get_main_queue(), ^{
NSMethodSignature *aSignature;
NSInvocation *anInvocation;
aSignature=[table methodSignatureForSelector:selector];
anInvocation=[NSInvocation invocationWithMethodSignature:aSignature];
[anInvocation setSelector:selector];
[anInvocation setTarget:table];
UIEdgeInsets temp=UIEdgeInsetsZero;
[anInvocation setArgument:&temp atIndex:2];
[anInvocation invoke];
});
}
@catch (NSException *exception) {
NSLog(@"EXCEPTION WHILE CALLING Separator inset => %@",[exception userInfo]);
}
@finally {
}
}