Có cách nào để xóa dòng phân cách khỏi UITableView không?


225

Tôi đang tìm cách để loại bỏ hoàn toàn dòng phân cách trong UITableView khi ở chế độ đơn giản. Điều này được thực hiện tự động theo nhóm, nhưng điều này cũng thay đổi kích thước của bảng theo cách khó đo lường. Tôi đã đặt màu đường phân cách thành colorClear. Nhưng điều này không hoàn toàn giải quyết vấn đề.

Khi tôi đang cố gắng vẽ chế độ xem nền tùy chỉnh trong các ô và tôi muốn các ô được liền mạch, một dòng pixel nằm giữa sẽ gây ra sự cố cho tôi. Có một cách giải quyết thanh lịch hơn sau đó sử dụng chế độ xem được nhóm lại và sau đó kéo dài nó?


Thay đổi separatorInsetnhư trong câu trả lời này stackoverflow.com/a/8561820/1418457
onmyway133

Câu trả lời:


454

Bạn có thể làm điều này với UITableViewtài sản separatorStyle. Đảm bảo thuộc tính được đặt thành UITableViewCellSeparatorStyleNonevà bạn đã đặt.

Mục tiêu-C

self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;

Trong Swift (trước 3)

tableView.separatorStyle = .None

Trong Swift 3/4/5

tableView.separatorStyle = .none

39
Nhân tiện, bạn cũng có thể làm điều này trong IB (dấu phân cách => không có).
Bart Jacobs

1
Điều này dường như chỉ để loại bỏ các dòng phân cách trong một phần bảng. Có cách nào để loại bỏ các đường phân cách giữa các phần?
devios1

4
Dòng giữa các phần không thực sự là một dòng, nhưng chế độ xem của phần. Bạn có thể thay đổi chế độ xem bằng cách thực hiện tableView:viewForHeaderInSection:từ UITableViewDelegategiao thức.
Bart Jacobs

64

Bạn cũng có thể làm điều này trong trình soạn thảo Storyboard / xib. Chỉ cần đặt Seperator thành không có.

nhập mô tả hình ảnh ở đây


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

18

Tôi vẫn có một dòng màu xám đen sau khi thử các câu trả lời khác. Tôi đã phải thêm hai dòng sau để làm cho mọi thứ "vô hình" về các dòng hàng giữa các ô.

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

Điều này làm việc cho tôi. Trong trường hợp của tôi, dòng phân cách không thực sự xuất hiện giữa các ô, mà thực sự ở đâu đó ở giữa chúng.
Elliot

10

Trong giao diện Trình tạo bộ tách bảng xem bảng "Không"

nhập mô tả hình ảnh ở đây và những dòng phân cách được hiển thị sau ô cuối cùng có thể được loại bỏ bằng cách tiếp cận sau. Cách tiếp cận tốt nhất là gán Chế độ xem trống cho bảng Xem chân trang trong viewDidLoad

self.tableView.tableFooterView = UIView ()



5

Có lỗi iOS 9 beta 4: dòng phân cách xuất hiện giữa UITableViewCellcác giây ngay cả khi bạn đặt separatorStylethànhUITableViewCellSeparatorStyleNone từ kịch bản này. Để giải quyết vấn đề này, bạn phải đặt nó từ mã, vì hiện tại có một lỗi từ bảng phân cảnh. Hy vọng họ sẽ sửa nó trong phiên bản beta trong tương lai.

Đây là mã để đặt nó:

[self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];

2

Trong Phương thức ViewDidLoad, bạn phải viết dòng này.

tableViews.separatorStyle = UITableViewCellSeparatorStyleNone;

Đây là mã làm việc.


1

Trong của bạn viewDidLoad:

self.tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];
if ([self.tableView respondsToSelector:@selector(setSeparatorInset:)])
{
    [self.tableView setSeparatorInset:UIEdgeInsetsZero];
}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.