5

ビューの次のものが表示されます

    [SYPTableView setSeparatorInset:UIEdgeInsetsZero];

iOS 7 では問題なく動作しますが、6.1 では例外が発生しました。

    NSInvalidArgumentException', reason: '-[UITableView setSeparatorInset:]: unrecognized selector sent to instance 

私の目的は、セルの境界線を削除することです。

4

2 に答える 2

11

separatorInsetプロパティはiOS UITableView7.0 から利用できるため、iOS 6.1 で例外が発生します。

投稿したコードから、iOS 7 で導入されたデフォルトのインセットを削除したいようです。このようなインセットは iOS 6 には存在しないため、iOS 7 でインセットを削除するだけで済みます。

setSeparatorInset:テーブルビューが実行に応答するかどうかを確認できます

if ([SVPTableView respondsToSelector:@selector(setSeparatorInset:)]) {
    [SYPTableView setSeparatorInset:UIEdgeInsetsZero];
}
于 2013-11-04T06:41:15.547 に答える
0

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 {

    }
}
于 2013-12-24T11:12:14.220 に答える