2012-04-24 7 views
4

스타일 UITableViewStylePlain을 사용하여 UITableView를 구현했습니다. 솔리드 배경색이있는 사용자 정의 헤더 뷰를 사용하고 있는데, 이는 불투명해야합니다. 그러나 머리글은 불투명하지 않으므로 머리글 아래로 스크롤 할 때 셀이 표시됩니다. 나는 헤더를 불투명하게하고 싶지만, 이것이 어떻게 될지는 알 수 없다.불투명 헤더가있는 UITableViewStylePlain

답변

3

관심이있는 사람들에게이 문제에 대한 해결책은 간단하지만 명확하지 않습니다. 나는 일하기 전에 다른 것들을 시도했다. 나는 적어도 하나의 다른 응용 프로그램에서 그것을 보았 기 때문에 그것을 할 수 있음을 알았습니다.

여기에는 tableView:viewForHeaderInSection: 대리자 메서드로 만든 사용자 지정 헤더가 사용됩니다.

작동하지 않았다 무엇 :이 대리자 메서드에서 만든 부모 뷰의의 backgroundColor 속성을 설정

1). 어떤 이유로 사용자 정의 헤더보기에 사용될 때이 색상이 무시됩니다.

2) 하위보기가 투명하지 않은 것으로 나타 났으므로 상위보기와 기존 하위보기 사이에 중간보기를 넣으려고했습니다. 이 뷰의 배경색을 단색으로 설정했습니다. 이것은 또한 무시되었습니다.

3)이 코드로의 backgroundColor 속성을 설정 : 어떤 이유

[UIColor colorWithPatternImage:[UIImage imageNamed:@"anImage.png"]]; 

, 간단한 색상이 작동하지 줘야 해,하지만 이미지가 않습니다에서 색상이 생성 근무 무엇

.

사용자가 머리글보기를 렌더링하는 방법에 대해 누군가가 설명하고 싶어하는 경우를 대비하여이 질문을 다른 날을 위해 열어 두겠습니다. 나는이 작은 세부 사항에 대한 문서에서 아무것도 보지 못했지만, 나는 그것을 놓쳤을지도 모른다.

1

같은 문제가 발생했습니다. 작업을 수행 한 솔루션은 하위 클래스 UITableViewHeaderFooterView에 다음 drawRect를 재정의했습니다.

4

테이블보기가 일반 경우 해당 섹션의 셀 중 하나 이상이 화면에 있으면 표시됩니다. 그래서 테이블 뷰는 헤더의 배경 뷰를 내부적으로 알파로 설정합니다. 그러나 배경보기를 사용자 지정보기로 설정하고 배경을 설정할 수 있습니다.

당신이 tableView:viewForHeaderInSection:에서 사용자 지정 헤더보기를 만들 때이 작업을 수행 할 수 있습니다 :

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section 
{ 
    UITableViewHeaderFooterView *header = ... 
    header.backgroundView = [UIView new]; 
    header.backgroundView.backgroundColor = [UIColor greenColor]; 

    return header; 
} 

또는 사용자 정의 헤더 뷰를 생성하지 않으려는 경우, 다음 아마 당신이 tableView:willDisplayHeaderView:forSection: 전나무의 배경을 설정할 수를 기본 헤더보기.