Apakah ada cara untuk menghapus garis pemisah dari UITableView?

225

Saya mencari cara untuk menghapus garis pemisah sepenuhnya dalam UITableView ketika dalam mode biasa. Ini dilakukan secara otomatis dalam kelompok, tetapi ini juga mengubah dimensi tabel dengan cara yang sulit untuk diukur. Saya telah mengatur warna garis pemisah ke colorClear. Tapi ini tidak sepenuhnya menyelesaikan masalah.

Saat saya mencoba untuk menggambar tampilan latar belakang kustom di sel, dan saya ingin sel menjadi mulus, satu garis pixel yang tetap di antara menyebabkan masalah saya. Apakah ada solusi yang lebih elegan kemudian menggunakan tampilan yang dikelompokkan dan kemudian merentangkannya?

Rumit
sumber
Ubah separatorInsetseperti pada jawaban ini stackoverflow.com/a/8561820/1418457
onmyway133

Jawaban:

454

Anda dapat melakukan ini dengan UITableViewproperti separatorStyle. Pastikan properti diatur ke UITableViewCellSeparatorStyleNonedan Anda diatur.

Objektif-C

self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;

Dalam Swift (sebelum 3)

tableView.separatorStyle = .None

Dalam Swift 3/4/5

tableView.separatorStyle = .none
Bart Jacobs
sumber
39
Anda juga dapat melakukan ini di IB, by the way (separator => tidak ada).
Bart Jacobs
1
Ini sepertinya hanya menghapus garis pemisah dalam bagian tabel. Apakah ada cara untuk menghapus garis pemisah antar bagian?
devios1
4
Garis antar bagian sebenarnya bukan garis, tetapi tampilan bagian tersebut. Anda dapat mengubah tampilan dengan menerapkan tableView:viewForHeaderInSection:dari UITableViewDelegateprotokol.
Bart Jacobs
64

Anda dapat melakukan ini di storyboard / editor xib juga. Setel Seperator ke none.

masukkan deskripsi gambar di sini

Kevin DiTraglia
sumber
62
- (void)viewDidLoad {
    [super viewDidLoad];
    [self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];
}
imthi
sumber
18

Saya masih memiliki garis abu-abu gelap setelah mencoba jawaban lainnya. Saya harus menambahkan dua baris berikut untuk membuat semuanya "tidak terlihat" dalam hal baris baris antar sel.

self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
self.tableView.separatorColor = [UIColor clearColor];
Sig Myers
sumber
Ini berhasil untuk saya. Dalam kasus saya, garis pemisah tidak benar-benar muncul di antara sel, tetapi sebenarnya di suatu tempat di tengahnya.
Elliot
10

Dalam antarmuka Builder mengatur pemisah tampilan tabel "Tidak Ada"

masukkan deskripsi gambar di sini dan garis pemisah yang ditunjukkan setelah sel terakhir dapat dihapus dengan mengikuti pendekatan. Pendekatan terbaik adalah dengan menetapkan Tampilan Kosong ke tableView FooterView di viewDidLoad

self.tableView.tableFooterView = UIView ()

Mohsin Qureshi
sumber
9

Dalam Swift:

tableView.separatorStyle = .None
Mohsen
sumber
5

Ada bug iOS 9 beta 4: garis pemisah muncul antara UITableViewCells bahkan jika Anda mengatur separatorStyleuntuk UITableViewCellSeparatorStyleNonedari storyboard. Untuk menyiasati ini, Anda harus mengaturnya dari kode, karena sampai sekarang ada bug dari storyboard. Berharap mereka akan memperbaikinya di beta masa depan.

Berikut kode untuk mengaturnya:

[self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];
Siddhesh Mahadeshwar
sumber
2

Dalam Metode ViewDidLoad, Anda harus menulis baris ini.

tableViews.separatorStyle = UITableViewCellSeparatorStyleNone;

Ini adalah Kode yang berfungsi.

Ashu
sumber
1

Di Anda viewDidLoad:

self.tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];
if ([self.tableView respondsToSelector:@selector(setSeparatorInset:)])
{
    [self.tableView setSeparatorInset:UIEdgeInsetsZero];
}
Aatish Javiya
sumber