2011-07-17 9 views
0

UITableView은 다시로드 할 때 매우 이상한 동작을 보이고 있습니다. 어떤 이유로, 테이블 뷰의 테두리 중 일부가 사라지기도하지만 (수정되지는 않았지만) 표시되는 셀 레이블은 정확합니다.UITableView 다시 그리기 문제

방금 ​​단일 행을 다시로드하면이 행의 테두리가 사라집니다. 전체 표를 다시로드하면 전체 표가 테두리를 잃게됩니다.

UITableView은 그룹 스타일을 사용하는 반면 흰색 배경을 사용 중이며 셀은 흰색 배경을 사용합니다.

이전에 이러한 동작을 보지 못했습니다. 버그입니까?

가 여기 어떻게 설정 테이블 :

settingsController.view.backgroundColor = [UIColor whiteColor]; 

_settingsTable = [[UITableView alloc] initWithFrame:[UIApplication sharedApplication].keyWindow.frame style:UITableViewStyleGrouped]; 
_settingsTable.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; 
_settingsTable.delegate = self; 
_settingsTable.dataSource = self; 
_settingsTable.backgroundView = nil; 

[settingsController.view addSubview:_settingsTable]; 

하고 세포가이 간단한 코드를 통해 하얗게됩니다

cell.backgroundView = nil; 
cell.backgroundColor = [UIColor whiteColor]; 

enter image description here

위의 스크린 샷에서 볼 수 있듯이, 볼륨 셀은 셀을 다시로드 한 후에 경계를 잃었습니다. 아무도 무슨 일이 일어나는지 알아?

편집 :

UITableView에 버그가 나타납니다는 여기이 해결 방법은 다음과 같습니다. 아시겠지만 UITableView은 배경이 기본적으로 질감이있는 별도의보기로로드되기 때문에 backgroundColor 속성을 신경 쓰지 않습니다. 이 값을 null으로 설정하면 테이블보기에 표시 오류가 나타납니다.

별도의 흰색보기를 작성하여이 문제를 해결했습니다. 이제 제대로 작동합니다.

UIView*whiteBg = [[UIView alloc] initWithFrame:_settingsTable.frame]; 
whiteBg.backgroundColor = [UIColor whiteColor]; 

_settingsTable.backgroundView = whiteBg; 

[whiteBg release]; 
+0

셀 및 표보기에 다른 배경색을 설정하려고 시도하십시오. –

+0

아니요. 응용 프로그램 스타일에 맞게 흰색이어야합니다. – Pripyat

+1

난 그냥 셀/테이블 배경 제한을 표시하는 줄 알았는데 ... –

답변

-1

테이블의 배경보기를 '없음'으로 설정하지 마십시오. backgroundColor를 [UIColor clearColor]로 설정하면 비슷한 효과를 얻을 수 있습니다.

동일 내용은 UITableViewCell에 적용됩니다.

+0

올바르지 않습니다. Apple은 iPhone Table View와 iPad Table View의 배경 이미지를 텍스처로로드합니다. 'UITableView'는'backgroundColor' 속성을 무시합니다. – Pripyat