ios - 테이블뷰 - uitableview example swift 4




UITableView에서 빈 행을 숨기고 비어 있지 않은 행을 기반으로 Uitableview의 높이를 변경하는 방법 (8)

UITableView 함께 몇 가지 문제가 있습니다.

  1. 내 페이지에 UITableview 를 추가하면 기본적으로 섹션의 행 수가 1로 설정 되어도 고정 된 수의 행이 표시됩니다. 모든 행은 첫 번째 행을 제외 하고 모든 행이 비어 있습니다. 그래서 UItableview 에서 빈 행을 모두 숨기려고합니다.

  2. 비어 있지 않은 행을 기반으로 UItableView 의 높이를 변경하고 싶습니다.


Bourne의 대답에 숨겨진 조금. 여러 섹션이있는 일반 테이블 뷰의 맨 아래 빈 행에 숨기려면이 대답을 사용하십시오.

https://.com/a/5658100/580173


tableview에 여러 섹션이있는 경우 다음을 사용해보십시오.

- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
{
    if (section == tableView.numberOfSections - 1) {
        return [UIView new];
    }
    return nil;
}

- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
{
    if (section == tableView.numberOfSections - 1) {
        return 1;
    }
    return 0;
}

이것은 Interface Builder를 통해서도 가능합니다. UITableView에 바닥 글로 1 픽셀 높이의 UIView를 추가하기 만하면됩니다. 그것은 본질적으로 여기에있는 대부분의 답변과 동일하지만보기 컨트롤러 대신보기에서 일부 UI 특성을 유지합니다.


테이블 배경과 동일한 배경색으로 바닥 글보기로 간단한 UIView를 생성하여 문제를 해결했습니다.

(UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section {
    UIView *view = [[[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 100)] autorelease];
    view.backgroundColor = [UIColor whiteColor];
    return view;
}

테이블 뷰에서 스크롤링을 비활성화해야 할 수도 있습니다.


UITableViewStyleGrouped 스타일을 사용하고 있습니까?

기본적으로 채워진 셀을 표시 한 후에 빈 셀을 표시하는 UITableViewStylePlain 으로 설정되기 때문입니다.


새로운 답변

Swift 2.2, 3.0 및 이후 버전에서 다음을 수행하십시오.

tableView.tableFooterView = UIView()

아래의 이전 답변. 명예의 전당.

UITableViewStylePlain 사용해야하고 다른 용도로 footerView를 사용하지 않는 경우 ARC를 사용하도록 설정 한 경우 다음과 같은 반투명 솔루션을 사용할 수 있습니다.

- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
{
    UIView *view = [[UIView alloc] init];

    return view;
}

ARC를 사용하지 않도록 설정 한 경우 다음을 사용하십시오.

- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
{
    UIView *view = [[[UIView alloc] init] autorelease];

    return view;
}

마지막으로 데이터가 채워진 셀 바로 다음에 나타나는 보이지 않는 footerView가 만들어집니다.


- (void) viewDidLoad
{
  [super viewDidLoad];
  self.tableView.tableFooterView = [[[UIView alloc] init] autorelease];
}

[self.SomeTableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];

UITableView 가 비어 있으면 줄을 없애기 위해 이것을 사용하십시오.







uitableview