콘텐츠가 화면에 맞았을 때 UITableView 테이블 스크롤을 비활성화하는 방법
iphone 앱에 몇 개의 테이블(그룹화 스타일)이 있습니다(화면 일부에만 표시됨).Interface Builder
그러나, 에서 분류되지 않는다UITableViewController
80%는 작고 화면에 표시됩니다.테이블이 화면에 맞으면 스크롤을 비활성화하여 좀 더 깔끔하게 하고 싶습니다.그러나 테이블이 화면을 벗어나면(나중에 행을 추가할 때) 스크롤을 다시 활성화하고 싶습니다(그렇지 않으면 해당 콘텐츠를 볼 수 없기 때문에).
방법이 있을까요?난 그걸 이해할 수 없을 것 같아.할 줄 압니다.
tableView.scrollEnabled = NO;
어디에 있는지, 아니면 테이블 오브젝트 크기 같은 것을 계산해야 하는지 잘 모르겠습니다.
갱신하다: Here's the solution that finally worked for me:
if (table.contentSize.height < table.frame.size.height) {
table.scrollEnabled = NO;
}
else {
table.scrollEnabled = YES;
}
전화한 후에 이 코드를 실행합니다.reloadData
적절한 사이즈를 계산하여 동작하는 것처럼 보입니다.
table.frame.size.height
는 객체의 실제 크기입니다( 참조).Interface Builder
)는 화면에 표시됩니다.table.contentSize.height
는 머리글, 바닥글 및 추가된 모든 셀의 높이입니다.
세팅하고 싶은 것 같은데
tableView.alwaysBounceVertical = NO;
Swift의 경우:
tableView.alwaysBounceVertical = false
다음 기능을 사용하여 표시되는 셀 수를 확인할 수 있습니다.
- (NSArray *)visibleCells
이 메서드는 표시되는 셀을 포함하는 배열을 반환하므로 이 배열의 개체 수를 계산하고 테이블 내의 개체 수와 비교할 수 있습니다.같다면..다음 명령을 사용하여 스크롤을 비활성화할 수 있습니다.
tableView.scrollEnabled = NO;
@Ginny가 말했듯이..부분적으로 보이는 셀에 문제가 있을 수 있으므로 이 경우 이 솔루션이 더 효과적입니다.
tableView.scrollEnabled = (tableView.contentSize.height <= CGRectGetHeight(tableView.frame));
autoLayout 이 솔루션을 사용하는 경우 다음 작업을 수행합니다.
tableView.alwaysBounceVertical = NO.
답변이 여러 개 있고 모든 콘텐츠가 한 번에 필요하기 때문에 다음 답변을 추가합니다.
AutoLayout을 사용하는 경우 이 설정만 하면 됩니다.
- 코드:
tableView.alwaysBounceVertical = false
- 또는 Interface Builder:
이 옵션을 찾아서untick
"Bounce Vertically
" 옵션을 선택합니다.
다음은 참고 자료입니다.
AutoLayout을 사용하지 않는 경우:
override func viewDidLayoutSubviews() {
// Enable scrolling based on content height
tableView.isScrollEnabled = tableView.contentSize.height > tableView.frame.size.height
}
이거 먹어봐
[yourTableView setBounces:NO];
Scroll View(스크롤 보기) 영역에서 이러한 항목을 선택/선택 해제하여 바운스를 활성화/비활성화하거나 테이블 보기를 스크롤할 수 있습니다.
// Enable scrolling based on content height self.tableView.scrollEnabled = table.contentSize.height > table.frame.size.height;
스토리보드에서 편집할 수 있습니다(사용하는 경우).테이블 보기 아래에는 "Scrolling Enabled(스크롤링 활성화)" 확인란이 있습니다.선택을 취소하면 완료됩니다.
44.0f로 하다어레이에서 데이터 소스를 수중에 넣어야 합니다. 그냥 해 주세요.[array count]*44.0f
되어 있는 는, 「」를 설정합니다.tableview.scrollEnabled = NO
[YES] 예스특정 테이블 뷰의 데이터 소스를 산출한 곳에서 수행합니다.
이게 나한테 효과가 있었어.
tableView.isUserInteractionEnabled = false
언급URL : https://stackoverflow.com/questions/7410845/how-to-disable-scrolling-in-uitableview-table-when-the-content-fits-on-the-scree
'source' 카테고리의 다른 글
C#/WPF: ViewModel의 모든 속성에 대해 Property Changed? (0) | 2023.04.14 |
---|---|
새 행의 선택 가능 영역을 작게 만들지 않고 WPF DataGrid 셀을 오른쪽으로 정렬하려면 어떻게 해야 합니까? (0) | 2023.04.14 |
어레이 요소를 ParamArray를 통해 함수에 전달하면 varpointer가 함수에 도달하는 이유는 무엇입니까? (0) | 2023.04.14 |
"비원자"라는 성질이 무슨 뜻이죠? (0) | 2023.04.14 |
SQL Server의 Group By, Having 및 Where 절 실행 시퀀스 (0) | 2023.04.14 |