UITableViewから区切り線を削除する方法はありますか?


225

プレーンモードのときにUITableViewの区切り線を完全に削除する方法を探しています。これは自動的にグループ化されて行われますが、これにより、測定が困難な方法でテーブルのディメンションが変更されます。区切り線の色をcolorClearに設定しました。しかし、これで問題が完全に解決するわけではありません。

セルにカスタム背景ビューを描画しようとしていて、セルをシームレスにしたいので、その間に残っている1ピクセルの線が問題を引き起こしています。グループ化されたビューを使用してからストレッチするよりエレガントな回避策はありますか?


変更separatorInsetこの回答のようにstackoverflow.com/a/8561820/1418457
onmyway133

回答:


454

UITableViewプロパティを使用してこれを行うことができますseparatorStyle。プロパティがに設定されUITableViewCellSeparatorStyleNone、設定されていることを確認してください。

Objective-C

self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;

Swift(3より前)

tableView.separatorStyle = .None

Swift 3/4/5の場合

tableView.separatorStyle = .none

39
ところで、IBでこれを行うこともできます(セパレーター=>なし)。
バートジェイコブス

1
これは、テーブルセクション内の区切り線を削除するだけのようです。セクションの区切り線を削除する方法はありますか?
devios1 2013

4
セクション間の線は、実際には線ではなく、セクションのビューです。プロトコルtableView:viewForHeaderInSection:から実装することでビューを変更できUITableViewDelegateます。
バートジェイコブス


62
- (void)viewDidLoad {
    [super viewDidLoad];
    [self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];
}

18

他の回答を試みた後、まだ暗い灰色の線がありました。セル間の行の行に関してすべてを「見えなく」するために、次の2行を追加する必要がありました。

self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
self.tableView.separatorColor = [UIColor clearColor];

これでうまくいきました。私の場合、区切り線は実際にはセル間ではなく、実際にはセルの中央に表示されていました。
エリオット

10

インターフェースビルダーでテーブルビューセパレーター「なし」を設定

ここに画像の説明を入力してください そして、最後のセルの後に表示されるそれらの区切り線は、以下の方法で削除できます。最善の方法は、viewDidLoadでtableView FooterViewに空のビューを割り当てることです。

self.tableView.tableFooterView = UIView()



5

iOS 9ベータ4にバグがありUITableViewCellます。次のように設定separatorStyleしても、sの間に区切り線が表示されますUITableViewCellSeparatorStyleNone。ストーリーボードから。これを回避するには、コードから設定する必要があります。現時点では、ストーリーボードにバグがあるためです。彼らが将来のベータでそれを修正することを願っています。

これを設定するコードは次のとおりです。

[self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];

2

ViewDidLoadメソッドでは、この行を記述する必要があります。

tableViews.separatorStyle = UITableViewCellSeparatorStyleNone;

これは作業コードです。


1

あなたのviewDidLoad

self.tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];
if ([self.tableView respondsToSelector:@selector(setSeparatorInset:)])
{
    [self.tableView setSeparatorInset:UIEdgeInsetsZero];
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.