그냥 아이폰 OS 개발에 젖은 내 발을 얻는 시도 1 일에 실패, 그래서 내가 여기에 정확한 수준의 세부 정보를 얻고 희망 .xib를 통해 생성 된 테이블 셀. 사실 여러 라벨, 그 중 하나는 다양한 길이 (따라서 다양한 감싸 인 높이)입니다. heightForRowAtIndexPath
등이 적절하게 재정의되고 두 레이블에 필요한 높이가 올바르게 계산되어 각 레이블에 할당됩니다. .frame
UILabel의 위치는
두 가지 크기가 모두 설정되면 더 작은 고정 길이의 프레임 .origin.y를 설정합니다. 항상 한 행 높이) 레이블을 큰 레이블의 레이블과 일치시킵니다. 이 작업은 cellForRowAtIndexPath
을 통해 진행될 수 있지만 새롭게 생성 된 셀의 초기 표시에서는 원점이 위쪽에 붙어있는 것과는 반대로 컨테이너에서 세로로 중심에 있지 않은 것처럼 보입니다.
셀을 다른보기로 "이동"한 다음 (현재 재사용되고 이미 크기가 적절하게 조정 된 컨테이너로) 돌아 오면 이전과 같이 위치가 설정되고 예상 한 위치에 나타납니다.
은 cellForRowAtIndexPath
반품 후 컨테이너의 크기가 조정되는 것과 같으며, 그 곳의 어딘가에서 우리 라벨을 찾을 수 있습니다. 이것은 왜 세포를 재사용하면 나중에 문제가 해결되는지 설명 할 수 있습니다.
필자는 내부 및 외부 모드와 기본 설정, 스트레치 설정 등 모든 명백한 조합을 시도해 보았습니다. 설명 및/또는 해결 방법이 손실되었습니다.
는 업데이트 :
Changing the position of custom UIButton in custom UITableViewCell 질문에 대한 제안은 문제를 해결했다. 해결책은 UITableViewCell
을 서브 클래스 화하고 layoutSubviews
을 오버라이드하여 TableView가 정상적인 위치 지정을 한 후에 하위 요소의 위치를 다시 잡을 수있는 기회를 얻는 것이 었습니다. 그 사람이 여기에 응답하거나 현상금이 만료되면 코드를 사용하여 답변을 드리겠습니다.
'viewWillAppear :'내부에서'[self.tableView reloadData]'를 (를) 호출 해 보았습니까? 이렇게하면보기가 표시되기 전에 모든 셀을 강제로 다시로드하고 표시 할 수 있습니다. 문제에 대한 설명은 아니지만 해결 방법 일 수 있습니다. 당신이 단순히 잘못된 순서로 어떤 일이 일어나고있는 것처럼 들립니다. – Stuart
비슷한 문제가 있습니다. http://stackoverflow.com/questions/8352530/changing-the-position-of-custom-uibutton-in-custom-uitableviewcell. 누구나 두 가지 질문에 대한 해결책을 찾을 수 있다면 좋을 것입니다[email protected] Paul Roub - 임시 해결 방법을 찾았습니까? 그렇다면 공유하십시오. – MadhavanRP
heightForRow 및 cellForRow에서 코드 또는 관련 섹션을 포함하십시오. 라벨을 옮길 때 높이를 설정할 때와 관심을 가질 때가 있습니다. 아마도 부정확 한 정렬과 원본 펜촉 레이아웃의 일부 스크린 샷도 좋을 것입니다 – jrturton