ios - swift tableview 구분선




UITableView 아래에 여분의 구분 기호를 제거하십시오. (20)

필자가 4 행으로 테이블 뷰를 설정할 때 채워진 행 아래에 여분의 구분선 (또는 여분의 빈 셀)이 남아 있습니다.

어떻게이 세포들을 제거 할 수 있습니까?


인터페이스 빌더 (iOS 9 이상)

UIView를 테이블로 드래그하면됩니다. 스토리 보드에서는 사용자 정의 셀 아래의 맨 위에 표시됩니다. "바닥 글"이라는 이름을 사용하는 것이 좋습니다.

여기서 명확하게하기 위해 녹색으로 표시되어 있습니다. 아마도 선명한 색상을 원할 것입니다.

높이를 조정하면 원하는대로 표 하단 바운스가 처리되는 방식에 영향을 줄 수 있습니다. (높이 0은 일반적으로 괜찮습니다).

프로그래밍 방식으로 수행하려면 다음과 같이하십시오.

빠른

override func viewDidLoad() {
    super.viewDidLoad()
    self.tableView.tableFooterView = UIView()
}

목표 -C

iOS 6.1 이상

- (void)viewDidLoad 
{
    [super viewDidLoad];

    // This will remove extra separators from tableview
    self.tableView.tableFooterView = [UIView new];
}

또는 원하는 경우,

    self.tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];

iOS에서 역사적으로 :

테이블 뷰 컨트롤러에 추가 ...

- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
     // This will create a "invisible" footer
     return CGFLOAT_MIN;
 }

필요한 경우 ...

- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
{        
    return [UIView new];

    // If you are not using ARC:
    // return [[UIView new] autorelease];
}

Storyboards를 사용하는 iOS 7 이상

UITableView UIView 를 바닥 UITableView 끌어 놓기 만하면됩니다. 바닥 글보기의 높이를 0으로 설정하십시오.


신속한 4.0 확장

스토리 보드를 조금만 확장하면됩니다.

extension UITableView {
    @IBInspectable
    var hideSeparatorForEmptyCells: Bool {
        set {
            tableFooterView = newValue ? UIView() : nil
        }
        get {
            return tableFooterView == nil
        }
    }
}

J. Costa의 솔루션 향상 : 다음 코드를 삽입하여 테이블을 전체적으로 변경할 수 있습니다.

[[UITableView appearance] setTableFooterView:[[UIView alloc] initWithFrame:CGRectZero]];

첫 번째 가능한 방법 (대개 AppDelegate의 : application : didFinishLaunchingWithOptions : 메소드).


Swift를 사용하는 경우 tableview를 관리하는 컨트롤러의 viewDidLoad 에 다음 코드를 추가합니다.

override func viewDidLoad() {
    super.viewDidLoad()

    //...

    // Remove extra separators
    tableView.tableFooterView = UIView(frame: CGRectZero)
}

UITableView를 하위 클래스로 분류하면이 작업을 수행해야합니다.

-(void)didMoveToSuperview {
    [super didMoveToSuperview];
    self.tableFooterView = [UIView new];
}

그룹화 된 테이블 스타일을 사용하는 또 다른 방법이 있습니다. 테이블에 머리말과 꼬리말을 추가 하면 (아마도 하나 또는 다른 것으로 충분하지 않은 경우 검사하지 않은 경우) 구분 기호가 필러 / 빈 행에서 사라집니다.

나는 손가락 위의 테이블 셀 대신 버튼을 누르는 위험을 줄이기 위해 테이블의 상단과 하단에 약간의 공간을 원하기 때문에 나는 이걸 발견했습니다. 다음은 빈보기를 머리말과 꼬리말로 붙이는 방법입니다. 원하는 높이를 사용하면 별도의 분리 선이 제거됩니다.

- (void) addHeaderAndFooter
{
    UIView *v = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 10)];
    v.backgroundColor = [UIColor clearColor];
    [self.myTableView setTableHeaderView:v];
    [self.myTableView setTableFooterView:v];
    [v release];
}

@Casebash에 대한 응답으로 앱 ( "AcmeLists"iTunes Manager의 목록 관리자 ...)의 코드로 돌아가 확인을 위해 addHeaderAndFooter 메서드를 단락했습니다. 그것 없이는 여분의 행 구분 기호가 있습니다. 코드로,이 창에서 볼 수있는 것이 있습니다. 테이블 행 분리 기호가 없습니다 . 그래서 왜 그것이 당신을 위해 일하지 않았을 지 모르겠습니다. 또한 테이블 뷰에 임의의 사용자 정의 꼬리말이 있으면 그 아래의 빈 행에 대해 행 구분 기호를 그려야 할 필요가 있다는 것은 나에게 의미가 있습니다. 그것은 끔찍할 것이다. 참고로 화면에서 볼 수있는 것보다 많은 행이있는 테이블을 살펴본 다음 두 행이있는 테이블을 살펴 보았습니다. 두 경우 모두 관계없는 분리 기호가 없습니다.

사용자 정의보기가 실제로 추가되지 않았을 수도 있습니다. 이를 확인하려면 배경색을 clearColor 가 아닌 다른 색상으로 설정합니다 (예 : [UIColor redColor] . 테이블 하단에 빨간색 막대가 보이지 않으면 바닥 글이 설정되지 않은 것입니다.


끝 부분에 빈 바닥 글을 추가하기 만하면 빈 셀을 숨길 수 있지만보기에도 엉망이됩니다.

tableView.tableFooterView = UIView()

더 나은 접근법이 있습니다 : 표보기의 끝에 1 개의 점 선을 바닥 글로 추가하면 빈 셀도 더 이상 표시되지 않습니다.

let footerView = UIView()
footerView.frame = CGRect(x: 0, y: 0, width: tableView.frame.size.width, height: 1)
footerView.backgroundColor = tableView.separatorColor
tableView.tableFooterView = footerView


나는 받아 들인 대답 (iOS 9+, 신속한 2.2)의 한 조각을 실행하는 약간 운이 있었다. 구현 시도 :

self.tableView.tableFooterView = UIView(frame: .zero)

그러나, 내 tableView 에 아무런 영향이 없었다 - 나는 그것이 내가 UITableViewController 를 사용하고 있었다는 사실과 관련이있을 것이라고 생각한다.

대신 viewForFooterInSection 메서드를 재정의해야 viewForFooterInSection (다른 곳에서는 tableFooterView 설정하지 않았습니다).

override func tableView(tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
    return UIView(frame: .zero)
}

이것은 하나의 섹션이있는 tableView 에 적합합니다 (여러 섹션이있는 경우 마지막 섹션을 지정해야합니다).


나는이 질문이 답변을 받아 들일지는 모르겠지만 여기에 다른 방법으로 UITableView 여분의 구분선을 숨길 수있는 방법을 넣었다.

tableView 의 표준 구분선을 숨기고 각 셀의 맨 위에 사용자 정의 선을 추가 할 수 있습니다.

최신 정보:

맞춤 구분 기호를 추가하는 가장 쉬운 방법은 1 픽셀 높이의 간단한 UIView 를 추가하는 것입니다.

UIView* separatorLineView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 1)];
separatorLineView.backgroundColor = [UIColor grayColor]; /// may be here is clearColor;
[cell.contentView addSubview:separatorLineView];

또는

    self.tblView=[[UITableView alloc] initWithFrame:CGRectMake(0,0,320,370) style:UITableViewStylePlain];
    self.tblView.delegate=self;
    self.tblView.dataSource=self;
    [self.view addSubview:self.tblView];

    UIView *v = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 10)];
    v.backgroundColor = [UIColor clearColor];
    [self.tblView setTableHeaderView:v];
    [self.tblView setTableFooterView:v];
    [v release];

또는

- (float)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
    // This will create a "invisible" footer
    return 0.01f;
}

- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
{
    // To "clear" the footer view
    return [[UIView new] autorelease];
}

또는 내가 좋아하는 가장 좋은 간단한 방법은

self.tableView.tableFooterView = [[UIView alloc] init];

하나를 시도해보십시오.


방금 ViewDidLoad 함수에이 줄을 추가하고 문제를 해결했습니다.

tableView.tableFooterView = [[UIView alloc] init]; 

배경 색상, 100 % 너비, x0 y-1 위치의 1 픽셀 높이로 원하는 분리 자 색상이있는 뷰를 tableViewCell에 추가하기 만하면됩니다. tableViewCell이 서브 뷰를 자르지 않도록하십시오. 대신 tableView가 있어야합니다.

따라서 코드 또는 IB 당 해킹하지 않고 기존 셀 사이에만 단순하고 작동하는 분리자를 얻을 수 있습니다.

참고 : 수직 상단 바운스에서 첫 번째 구분 기호가 표시되지만 기본 iOS 동작의 문제는 아니어야합니다.


섹션이 하나만있는 경우 가장 빠르고 쉬운 방법은 표보기 스타일을 "일반"에서 "그룹화"로 설정하는 것입니다. (이미지 참조)

단면이 더 많은 경우 헤더 높이를 0으로 설정해야 할 수도 있습니다 (고객 / 고객 / 프로젝트 관리자의 취향에 따라 다름)

더 많은 섹션이 있고 헤더를 사용하지 않으려면 (가장 간단한 경우에는 단 한 줄이라도), 이전 답변에서 설명한 것처럼 UIView를 바닥 글로 설정해야합니다.


여분의 구분선 uitableview 여분의 구분선 숨기기 swift 3.0에서 숨기기

 self.tbltableView.tableFooterView = UIView(frame: .zero)

이 시도

self.tables.tableFooterView = [[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 320.0f, 10.0f)];

이 시도. 그것은 나를 위해 일했다.

- (void) viewDidLoad
{
  [super viewDidLoad];

  // Without ARC
  //self.tableView.tableFooterView = [[[UIView alloc] init] autorelease];

  // With ARC, tried on Xcode 5
  self.tableView.tableFooterView = [UIView new];
}

전체적으로 도움이되는 작은 테이블 뷰 확장을 추가했습니다.

extension UITableView {
     func removeExtraCells() {
         tableFooterView = UIView(frame: .zero)
     }
}

테이블 뷰를 사용하여 고정 된 높이의 행을 고정 된 수만큼 표시하므로 크기를 간단히 조정하고 스크롤 할 수 없게 만들었습니다.


tableViewtableFooterView 가 있으면 UIKit 빈 셀을 만들지 않습니다. 그래서 우리는 트릭을 만들고 zero height UIView 객체를 tableView 바닥 UIView 할당 할 수 있습니다.

tableView.tableFooterView = UIView()

SWIFT 3.0tableView.tableFooterView = UIView() 와 잘 작동합니다.





cocoa-touch