UITableView에서 빈 셀 사이의 구분 기호를 강제로 숨길 수 있습니까?
일반 스타일을 사용하는 경우UITableView충분한 수의 세포를 가지고 있다.UITableView모든 항목을 스크롤하지 않고 표시할 수 없습니다.셀 아래의 빈 공간에 구분 기호가 표시되지 않습니다.셀이 몇 개밖에 없는 경우 셀 아래의 빈 공간에는 구분 기호가 포함됩니다.
제가 이 모든 걸 강제로UITableView빈 공간에 있는 분리기를 제거할 수 있습니까?그렇지 않으면 동작을 상속하기 어렵게 만드는 각 셀에 대해 구분자를 그려 넣은 사용자 지정 배경을 로드해야 합니다.
여기서 비슷한 질문을 찾았는데 그룹화된 질문은 사용할 수 없습니다.UITableView구현에 있어.
iOS 7.* 및 iOS 6.1의 경우
가장 쉬운 방법은,tableFooterView속성:
- (void)viewDidLoad
{
[super viewDidLoad];
// This will remove extra separators from tableview
self.tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];
}
이전 버전의 경우
TableViewController에 추가할 수 있습니다(이것은 임의의 수의 섹션에서 동작합니다).
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
// This will create a "invisible" footer
return 0.01f;
}
부족하면 다음 코드도 추가합니다.
- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
{
return [UIView new];
// If you are not using ARC:
// return [[UIView new] autorelease];
}
Swift의 경우:
override func viewDidLoad() {
super.viewDidLoad()
tableView.tableFooterView = UIView() // it's just 1 line, awesome!
}
테이블 뷰의 바닥글을 정의하면 원하는 것을 얻을 수 있습니다.상세한 것에 대하여는, 다음의 회답을 참조해 주세요.UITable View 아래에 추가 구분 기호 제거
Daniel의 링크를 사용하여 보다 사용하기 쉽게 확장했습니다.
//UITableViewController+Ext.m
- (void)hideEmptySeparators
{
UIView *v = [[UIView alloc] initWithFrame:CGRectZero];
v.backgroundColor = [UIColor clearColor];
[self.tableView setTableFooterView:v];
[v release];
}
몇 가지 테스트를 한 결과 사이즈는 0이 될 수 있고 동작도 한다는 것을 알게 되었습니다.그래서 테이블 끝에 여백을 더하지 않습니다.해킹해줘서 고마워요저는 리다이렉트를 좋아하지 않기 때문에 여기에 올리기로 했습니다.
스위프트 버전
가장 쉬운 방법은 tableFooterView속성을 설정하는 것입니다.
override func viewDidLoad() {
super.viewDidLoad()
// This will remove extra separators from tableview
self.tableView.tableFooterView = UIView(frame: CGRectZero)
}
Swift의 경우:
self.tableView.tableFooterView = UIView(frame: CGRectZero)
최신 Swift의 경우:
self.tableView.tableFooterView = UIView(frame: CGRect.zero)
iOS 7 SDK를 사용하면 매우 간단합니다.
다음 행을 viewDidLoad 메서드에 추가합니다.
self.yourTableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];
테이블 세팅separatorStyle로.UITableViewCellSeparatorStyleNone(코드 또는 IB의)가 유효합니다.
다음을 사용합니다.
UIView *view = [[UIView alloc] init];
myTableView.tableFooterView = view;
[view release];
viewDidLoad에서 실행 중입니다.하지만 어디에나 설정할 수 있습니다.
이 문제에 대해서는 다음 사항이 매우 효과적입니다.
- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section {
CGRect frame = [self.view frame];
frame.size.height = frame.size.height - (kTableRowHeight * numberOfRowsInTable);
UIView *footerView = [[UIView alloc] initWithFrame:frame];
return footerView; }
여기서 kTableRow높이는 행 셀의 높이이고 number Of Rows In Table은 테이블에 있는 행의 수입니다.
도움이 됐으면 좋겠는데
브렌튼.
언급URL : https://stackoverflow.com/questions/1633966/can-i-force-a-uitableview-to-hide-the-separator-between-empty-cells
'programing' 카테고리의 다른 글
| XAML의 부울 명령어파라미터 (0) | 2023.04.15 |
|---|---|
| 하나의 문장에서 여러 항목을 목록에서 제거하려면 어떻게 해야 합니까? (0) | 2023.04.15 |
| WPF 어플리케이션을 Windows 7에서도 메트로 스타일로 할 수 있습니까? (Windows Chrome / Theming / Theme ) (0) | 2023.04.15 |
| 데이터 프레임 목록을 작성하려면 어떻게 해야 합니까? (0) | 2023.04.10 |
| C#을 사용하여 파일 전체를 문자열로 읽는 방법 (0) | 2023.04.10 |