UITableView, 구분자 색은 어디에 설정합니까?


162

UITableViewIB에을 추가 하고 "대리인"및 "데이터 원본"을 설정했으며 모두 제대로 작동합니다. 다음에하고 싶었던 것은 구분 기호 색상을 변경하는 것이었지만이를 찾을 수있는 유일한 방법은 대리자 콜백 중 하나에 메소드를 추가하는 것이 었습니다.

나는 현재 이것을 가지고 있지 않지만 컨트롤러에서 "iVar"를 추가하여 UITableViewIB에 링크 한 다음 구분 기호 색상을 viewDidload?

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    [tableView setSeparatorColor:[UIColor blackColor]];
    return 65;
}

변수를 추가하고 IB에 연결하는 것이 항상 항상 수행 한 방법입니다.
s1mm0t

그게 내가 생각한 것입니다. 나는 그들이 사용하지 않은 튜토리얼과 iVar를하고 있었고, 그들은 델리게이트와 데이터 소스 콜백에 의존했습니다. 그러나 그들은 분리 자 색상에 액세스하지 않았으므로 아마도 그럴 것입니다.
fuzzygoat

답변:


335
- (void)viewDidLoad
{
   [self.tableView setSeparatorColor:[UIColor myColor]];
}

도움이 되길 바랍니다 self.. 액세스하려면 기억 해야합니다 .

스위프트 4.2

tableView.separatorColor = UIColor.red

안녕하세요 Helen, @property를 추가하지 않고도 액세스 할 수 있습니까?
fuzzygoat

1
사실입니다. UITableViewController를 서브 클래 싱하고 있으며이를 속성으로 선언합니다. 따라서 수퍼 클래스의 접근 자 / 세터 메소드를 상속하므로 적절하게 설정할 수 있습니다. 그러나 인스턴스 변수에 직접 액세스 할 수는 없습니다 (아마도 좋은 것). 델리게이트 메소드에서 설정할 수있는 이유는 호출 된 메소드의 매개 변수이기 때문입니다.
Helen

2
또는 원하는 경우 : self.tableView.separatorColor = UIColor.clearColor;
bbrame

2
특히 답변의 일부는 아니지만 [super viewDidLoad];코드 스 니펫에 추가 하는 것이 좋습니다.
totocaster

57

이제 IB에서 직접 할 수 있어야합니다.

질문이 원래 게시되었을 때 이것이 가능하다면 확실하지 않습니다.

여기에 이미지 설명을 입력하십시오


24

스위프트 버전 :

override func viewDidLoad() {
    super.viewDidLoad()

    // Assign your color to this property, for example here we assign the red color.
    tableView.separatorColor = UIColor.redColor()
}

1
이것은 'separatorColor' is unavailabletvOS 에서 오류 를 보여줍니다 .
바나나

12

UITableView의 + (인스턴스 유형) 모양 을 사용해보십시오 .

목표 -C :

[[UITableView appearance] setSeparatorColor:[UIColor blackColor]]; // set your desired colour in place of "[UIColor blackColor]"

스위프트 3.0 :

UITableView.appearance().separatorColor = UIColor.black // set your desired colour in place of "UIColor.black"

참고 : 변경 사항은 응용 프로그램에 사용 된 모든 테이블에 반영됩니다.


3

모든 구분 기호에 동일한 색상을 설정하고 불투명하면 다음을 사용할 수 있습니다.

 self.tableView.separatorColor = UIColor.redColor()

구분 기호에 다른 색을 사용하거나 구분 기호 색을 지우거나 알파가있는 색을 사용하려는 경우.

주의 : 구분자에 기본 색상이있는 backgroundView가 있다는 것을 알아야합니다.

이를 변경하려면이 기능을 사용할 수 있습니다.

    func tableView(tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) {
        if(view.isKindOfClass(UITableViewHeaderFooterView)){
            var headerView = view as! UITableViewHeaderFooterView;
            headerView.backgroundView?.backgroundColor = myColor

           //Other colors you can change here
           // headerView.backgroundColor = myColor
           // headerView.contentView.backgroundColor = myColor
        }
    }

    func tableView(tableView: UITableView, willDisplayFooterView view: UIView, forSection section: Int) {
        if(view.isKindOfClass(UITableViewHeaderFooterView)){
            var footerView = view as! UITableViewHeaderFooterView;
            footerView.backgroundView?.backgroundColor = myColor
           //Other colors you can change here
           //footerView.backgroundColor = myColor
           //footerView.contentView.backgroundColor = myColor
        }
    }

그것이 도움이되기를 바랍니다!


1
이것은 'separatorColor' is unavailabletvOS 에서 오류 를 보여줍니다 .
바나나

3

스위프트 3, xcode 버전 8.3.2, 스토리 보드-> 테이블보기-> 관리자-> 분리기를 선택하십시오.

스위프트 3, xcode 버전 8.3.2

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