2009-05-23 4 views
23

iPhone에서 특정 액세서리보기 (공개 표시기 등)가 표시 될 때 테이블보기 셀의 콘텐츠보기 너비를 어떻게 알 수 있습니까?UITableViewCell의 contentView에서 지정된 액세서리 유형의 너비

배치, 가변 길이 텍스트가 들어있는 셀의 정확한 셀 높이를 계산하려면이 값이 필요합니다. 그러나 테이블 뷰 대리자가 셀 높이를 요청하면 실제로는 실제 셀 인스턴스가 없으므로 내용 뷰 경계를 직접 쿼리 할 수 ​​없습니다.

오른쪽에 20 픽셀 여백을 쉽게 하드 코딩 할 수 있습니다.이 여백은 공개 표시기가있는 일반 스타일 테이블보기의 경우 정확한 것으로 보이지만 올바른 방법으로 유지하는 것이 좋습니다 애플이 마진을 조정하기로 결정하면 일한다.

(이것은 this question 관련이있다.)

내가 모든 하위 요소를 보유하고있는 UITableViewCell의 서브 클래스를 것

답변

2

개인적으로, 나는 값을 하드 코딩 할 것입니다. 더 간단하고 일들이 예측 가능한 방식으로 중단 될 것입니다.

프로그래밍 방식으로이 작업을 수행 했으므로 UITableViewCell을 만들고 편집 할 속성/첨부 파일 뷰를 설정 한 다음 contentView 크기가 얼마나 큰지 물어보십시오.

당연히이 캐시를 많이 사용하게 될 것입니다. UITableView에 요청하면 높이 정보가 들리 겠지만 (항상 프로파일 러를 사용하여 확인하십시오.) 느린 것처럼 들립니다.

+0

그래, 내가 끝내 하드 코딩 (20 픽셀). 처음 시도했을 때 설명했던 것처럼 더미 셀을 만들려고했는데 제대로 기억한다면 작동하지 않는다고 생각합니다. 레이아웃이 셀이 실제로 테이블 뷰에 표시 될 때만 설정되는 것 같습니다. –

+0

오 잘! 다행히 해결책을 찾았다는 소식을 듣고 기쁩니다. –

0

. 셀이 들어가고 편집 모드가있을 때 특정 요소의 프레임을 배치 할 수 있습니다. 이에 대한 좋은 예가 Apple의 Table View 프로그래밍 가이드에서 사용자 정의 테이블 뷰 셀 생성에 대한 섹션 아래에 있습니다.

0

UITableViewCell의 contentView 속성은 라벨 등이 포함 된보기이므로 너비가 사용 가능한 크기 여야합니다.

+0

문제는 테이블 뷰 대리자는 보이지 않는 셀의 높이를 알아야하기 때문에 contentView를 가져올 실제 셀 인스턴스가 없다는 것입니다. 나는 단지 _a_ visible 셀의 contentView를 가져 와서 다른 모든 셀이 동일한 contentView 너비를 갖는다 고 가정합니다. –

+0

위젯에서 height 메서드를 제거한 다음 나중에 셀을 설정할 때 UITableView –

+0

@Ed의 메서드를 사용하여 높이를 설정하면 테이블 뷰 대리자가 테이블 뷰에 스크롤 뷰가 올바른 치수를 갖도록 설정되기 전에 모든 셀의 높이. –

관련 문제