3

포럼에 많은 질문에 대한 답변이 나와 있지만 도움이되지 못했습니다. 여기 내 문제가있다.UITableView의 맨 아래로 스크롤 할 수 없습니다.

UITableViewUISegmentedControl입니다. 하나의 세그먼트에는 다른 세그먼트보다 적은 데이터가 있습니다. 순환 또는 세그먼트 전환 후 전체 데이터가 표시되도록 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 :

모든 contentSizeheight 값은 괜찮은 것 같습니다. 그러나 문제는 어떻게 든 화면의 사용자 정의 헤더보기와 관련이 있음을 알게되었습니다. 테이블보기에서 제거하면 끝까지 스크롤됩니다. 그러나 헤더보기에서는 그렇지 않습니다. 머리글보기에서 아무 것도 변경하지 않고 테이블 상단에 단추가있는보기입니다.

+0

두보기의 이미지가 도움이됩니다. – Bonnie

+0

테이블의 크기를 변경할 때 코드를 표시합니다. – edzio27

+0

tableview의 높이를 설정 했습니까? – Dipali

답변

1

실험을 몇 시간 수행 한 후에 의 contentSize.height 속성을 하나 늘렸지만 이제는 정상적으로 작동합니다. 나는 왜 그것이 작동하는지 모르지만 그것은 해결책이다. 그런데 속성을 하나씩 줄이면 동일한 결과가 발생합니다. 두 경우 모두 테이블이 올바르게 표시됩니다.

+0

안녕하세요 Antiohia, 나는 똑같은 문제에 직면하고 있습니다. 정확한 코드를 올리시겠습니까? – gfpacheco

+0

안녕하세요, 코드가 더 이상 없습니다. 기본적으로, 나는 contentSize의 높이를 변경하여보기가 그것을 업데이트하도록 강제합니다. 그러나 내 경험에 비추어 볼 때, 문제를 일으킬 수있는 많은 것들이 있으며 높이를 하나씩 변경하는 것은 모든 높이가 정말로 괜찮은지 확인한 후 내가 시도 할 마지막 해결책입니다. – Antiohia

+1

나는 많은 것을 시도해, 나의 고도는 좋았다, 나는 나의 디자인을 바꾸는 것을 끝냈다 = / – gfpacheco

4

tableView의 프레임 높이가 보이는 영역을 초과했기 때문입니다. tableView의 프레임 높이를 보이는 영역 내부로 낮추십시오. 모든 것을 볼 수 있습니다.

tableView.contentSize = CGSizeMake(widthYouWant, heightYouWant); 
관련 문제