UITableView에서 구분선을 제거하는 방법이 있습니까?


225

일반 모드에서 UITableView에서 구분선을 완전히 제거하는 방법을 찾고 있습니다. 이 작업은 그룹으로 자동 수행되지만 측정하기 어려운 방식으로 테이블의 크기도 변경됩니다. 구분선 색상을 colorClear로 설정했습니다. 그러나 이것이 문제를 완전히 해결하지는 못합니다.

셀에 사용자 정의 배경보기를 그리려고하는데 셀이 매끄럽게되기를 원합니다. 중간에 하나의 픽셀 선이 문제를 일으키고 있습니다. 그룹화 된보기를 사용하고 스트레칭하는보다 더 우아한 해결 방법이 있습니까?


separatorInset이 답변과 같이 변경 stackoverflow.com/a/8561820/1418457
onmyway133

답변:


454

UITableView속성 으로이 작업을 수행 할 수 있습니다 separatorStyle. 속성이 설정되어 UITableViewCellSeparatorStyleNone있고 설정되어 있는지 확인하십시오 .

목표 -C

self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;

스위프트에서 (3 이전)

tableView.separatorStyle = .None

스위프트 3/4/5

tableView.separatorStyle = .none

39
참고로 IB 에서이 작업을 수행 할 수도 있습니다 (분리기 => 없음).
Bart Jacobs

1
이것은 테이블 섹션 내에서 구분선을 제거하는 것 같습니다. 섹션 사이 의 구분선을 제거하는 방법이 있습니까?
devios1

4
섹션 사이의 선은 실제로 선이 아니라 섹션의 뷰입니다. 프로토콜 tableView:viewForHeaderInSection:에서 구현하여보기를 변경할 수 있습니다 UITableViewDelegate.
Bart Jacobs


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

18

다른 답변을 시도한 후에도 여전히 어두운 회색 선이 나타납니다. 셀 사이의 행 선으로 모든 것을 "보이지 않게"하려면 다음 두 줄을 추가해야했습니다.

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

이것은 나를 위해 일했습니다. 필자의 경우 구분선은 실제로 셀 사이가 아니라 실제로 중간에 나타납니다.
Elliot

10

인터페이스 빌더에서 테이블보기 구분 기호 "없음"

여기에 이미지 설명을 입력하십시오 마지막 셀 다음에 표시되는 분리선은 다음과 같은 접근 방식으로 제거 할 수 있습니다. 가장 좋은 방법은 viewDidLoad의 tableView FooterView에 Empty View를 할당하는 것입니다

self.tableView.tableFooterView = UIView ()


9

스위프트에서 :

tableView.separatorStyle = .None

5

구분선 사이에 나타납니다 버그는 아이폰 OS 9 베타 4가 UITableViewCell사용자가 설정 한 경우에도 S separatorStyleUITableViewCellSeparatorStyleNone스토리 보드에서가. 이 문제를 해결하려면 스토리 보드의 버그가 있기 때문에 코드에서 설정해야합니다. 앞으로 베타 버전에서 문제를 해결하기를 바랍니다.

설정하는 코드는 다음과 같습니다.

[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.