UITableView의 셀 강조 색상 제거


110

uitableview 셀 선택의 기본 파란색을 제거하고 싶습니다. 나는 거기에 선택 색상을 원하지 않습니다. 사용자 지정 셀 클래스를 만들지 않았습니다. 셀 위에 레이블과 버튼을 추가하여 셀을 사용자 지정하고 있습니다. 나는 시도했다 :

cell.selectioncolor = [UIColor clearcolor];

그러나이 방법은 더 이상 사용되지 않는다고 말합니다.

답변:


321
cell.selectionStyle = UITableViewCellSelectionStyleNone;

스위프트 4 업데이트

cell.selectionStyle = UITableViewCell.SelectionStyle.none

또는

cell.selectionStyle = .none

3
이 코드를 cellForRowAtIndexPath :에 보관했습니다. 정확히 보관할 장소입니까?
Pawriwes

9
@Pawriwes, 네. 내가 정확히 기억한다면 당신은 또한 세포의 XIB의 속성은이 인터페이스 빌더 사용하여 세포 생성하는 경우 있음을 설정할 수 있습니다
블라디미르

4
이렇게하면 편집 할 때 셀을 선택하지 않습니다. (
AsifHabib

54

Storyboard또는 에서 선택XIB


여기에 이미지 설명 입력


7
또한 셀을 선택하지 않는 것보다 "테이블보기"에서 변경하면 "테이블보기 " 을 체크해야합니다 .
Kernelzero

2
@Pulkit은 사실이 아닙니다. 이것은 셀의 선택 상태 만 비활성화합니다. 이것은 데이터가 표시되거나 상호 작용을 처리하는 것과 관련이 없습니다. 모든 적절한 등록 세트가 있고 다른 기능을 재정의하지 않는지 확인하십시오.
Michael

이것은 완전히 잘못되었습니다
Fattie

12
// Swift 2.0

cell.selectionStyle = UITableViewCellSelectionStyle.None

5
또는 열거 형 값을 직접 사용할 수 있습니다. cell.selectionStyle = .None
Steve


6

목표 -C :

cell.selectionStyle = UITableViewCellSelectionStyleNone;

또는

[cell setSelectionStyle:UITableViewCellSelectionStyleNone];

스위프트 4 :

self.selectionStyle = UITableViewCellSelectionStyle.none;

스위프트 3 :

cell.selectionStyle = .none

스위프트 2 :

cell.selectionStyle = UITableViewCellSelectionStyle.None

Storyboard / Xib를 사용하여 변경하려면 "선택 스타일 효과"를 제거 할 셀을 선택하고 "없음"으로 정의하면됩니다. 마법처럼 작동합니다 : D

스토리 보드 / Xib


1
스위프트 4 : cell.selectionStyle = UITableViewCell.SelectionStyle.none
해군 하산

5

TableView 선택 스타일을 .none로 설정하면 내 앱에서 tableview의 응답 성과 성능에 영향을 미쳤습니다 ( didSelectRowAt indexPath탭이 지연됨). 이 문제에 대한 내 해결책 awakeFromNib()은 셀을 처음 만들 때 선택한 배경보기를 숨기는 것 입니다.

selectedBackgroundView?.isHidden = true



2

:

class YourCell:  UITableViewCell {
    
    override func didMoveToSuperview() {
        selectionStyle = .none
    }

    ...
}

그렇게 쉽습니다.


0

스위프트 5

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "cell")
        cell.selectionStyle = .none

        return cell
    }  

0

정답은 다음과 같아야합니다.

cell.selectedBackgroundView?.backgroundColor = <choose your color>

선택 유형은 다음으로 설정 될 때와 다른 특성입니다. .none 원하는 생성하고 다른 원치 않는 부작용 생성 .

셀을 강조 표시 하지 않으려면 배경보기의 색상을 강조 표시 하지 않을 때와 동일하게 만듭니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.