포럼에 많은 질문에 대한 답변이 나와 있지만 도움이되지 못했습니다. 여기 내 문제가있다.UITableView의 맨 아래로 스크롤 할 수 없습니다.
UITableView
은 UISegmentedControl
입니다. 하나의 세그먼트에는 다른 세그먼트보다 적은 데이터가 있습니다. 순환 또는 세그먼트 전환 후 전체 데이터가 표시되도록 reloadData
을 호출합니다. 그거야.
이제 사용자는 셀을 클릭하고 동일한 UISegmentedControl
을 사용하여 다른보기로 이동합니다. 동일한 컨트롤이 사용되도록 의도되었으므로 두 뷰 모두 데이터에 동일한 관점을 표시해야합니다. 이 문제는 사용자가 첫 번째 화면에서 적은 양의 데이터로 원근감을보고 두 번째로 이동하여 거기에있는 데이터로 원근법을 변경할 때 나타납니다. 그런 다음 그는 돌아가서 테이블의 맨 아래로 스크롤 할 수 없습니다. 화면을 회전 시키거나 세그먼트를 변경하면 모든 것이 다시 정상적으로 작동합니다.
viewWillAppear:
을 구현하고 거기에서 높이를 줄이거 나 계산하여이 문제를 해결하려고 시도했습니다. tableView
. 불행하게도, 그것은 효과가 없었습니다. reloadData
을 호출해도 도움이되지 않습니다. 실제로, tableView
은 세그먼트를 전환 할 때 이미 다시로드됩니다 ... 그러나 여전히, 나는 테이블의 마지막 셀을 볼 수 없습니다.
아이디어가 있으십니까?
편집 : 여기
내가 (크기 조정없이) 테스트에서 얻을 높이입니다 :
NSLog(@"Before switch: %f, %f", self.tableView.frame.size.height, self.tableView.contentSize.height);
-> 전환하기 전에 : 372.000000, 471.000000
NSLog(@"After switch: %f, %f", self.tableView.frame.size.height, self.tableView.contentSize.height);
-> 후 스위치 : 372.000000, 585.000000
tableView
은 그대로 유지되며 contentSize
만 증가합니다. 나는 ... 등의 값을 감소하지만 난 정말 수행해야 모르겠어요, 다른의 값으로 하나의 값을 설정하려고
EDIT2 :
모든 contentSize
및 height
값은 괜찮은 것 같습니다. 그러나 문제는 어떻게 든 화면의 사용자 정의 헤더보기와 관련이 있음을 알게되었습니다. 테이블보기에서 제거하면 끝까지 스크롤됩니다. 그러나 헤더보기에서는 그렇지 않습니다. 머리글보기에서 아무 것도 변경하지 않고 테이블 상단에 단추가있는보기입니다.
두보기의 이미지가 도움이됩니다. – Bonnie
테이블의 크기를 변경할 때 코드를 표시합니다. – edzio27
tableview의 높이를 설정 했습니까? – Dipali