Programing

그룹화 된 스타일 UITableView 섹션에서 셀 테두리 제거

lottogame 2020. 11. 19. 07:46
반응형

그룹화 된 스타일 UITableView 섹션에서 셀 테두리 제거


그룹화 된 스타일로 초기화되고 여러 섹션이있는 UITableViewController가 있습니다. 이 섹션 중 하나의 경우 구성 셀이 완전히 투명하고 테두리가 없기를 바랍니다. 이 섹션의 모든 행에 대해 사용자 지정보기를 할당 할 계획이지만 그룹화 된 테이블 셀로 둘러싸인 사용자 지정보기가 좋지 않은 것 같습니다.

다음은 셀의 배경색을 투명이 아닌 검은 색으로 만듭니다. 그래도 테두리를 제거하는 방법을 모르겠습니다.

cell.backgroundColor = [UIColor clearColor];

포인터가 있습니까? 감사!


참고 : iOS7 이상에서는 작동하지 않는 것 같습니다. iOS7의 경우이 답변을 시도 하십시오 .

iOS6 이하의 경우 그룹화 된 테이블보기 셀의 셀에서 그룹화 된 배경을 제거하려면 :

이것은 작동하지 않았다

cell.backgroundView = nil; // Did Not Work

이것은

cell.backgroundView = [[[UIView alloc] initWithFrame:CGRectZero] autorelease];

ARC로 이사 한 경우 (작동한다고 들었지만 테스트하지는 않음)

cell.backgroundView = [UIView new];

실제로 설정해야합니다.

tableView.separatorStyle = UITableViewCellSeparatorStyleNone;

셀의 테두리를 제거합니다.


다음 해킹은 현재 iOS 7에서 작동합니다. :)

하위 클래스 UITableViewCell로 이동하고 구분 기호가 없어야하는 섹션에이 셀을 사용합니다. 셀 하위 클래스
addSubview메서드를 재정의합니다 .

-(void)addSubview:(UIView *)view
{
    // The separator has a height of 0.5pt on a retina display and 1pt on non-retina.
    // Prevent subviews with this height from being added. 
    if (CGRectGetHeight(view.frame)*[UIScreen mainScreen].scale == 1)
    {
        return;
    }

    [super addSubview:view];
}

이것은 그룹화 스타일 테이블을 갖는 데 효과적이었습니다.

[tableView setSeparatorColor : [UIColor clearColor]];


이 코드는 나를 위해 일했습니다. :)

[self.tableView setSeparatorColor:[UIColor clearColor]];
[self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];

셀의 backgroundView를 nil로 설정하십시오. 그룹화 된 테이블의 경우 셀 이미지가 해당보기의 일부입니다.


cell.backgroundColor = [UIColor clearColor];

cell.backgroundView = [[[UIView alloc] initWithFrame:CGRectZero] autorelease];

사용해보십시오 tableView.separatorColor = [UIColor clearColor];

그리고 사용하지 마십시오 tableView.separatorStyle = UITableViewCellSeparatorStyleNone;

스타일이 없으면 섹션 테두리를 보이지 않게 만드는 것이 작동하지 않고 대신 색상을 변경하면 섹션 테두리가없는 것으로 나타납니다.

iOS는 객체를 없음으로 만들고 객체를 투명하게 만드는 것을 차별화하는 것 같습니다.


cell.backgroundView = [UIView new];

매력처럼 작동합니다! 테스트 완료! iOS6


iOS 8부터 구분자 속성을 none으로 설정하는 것도 작동합니다.

Get rid of cell border


콘텐츠보기를 설정하면 테두리도 제거됩니다. 사용자 정의보기를 cell.contentView로 설정하십시오.


그룹화 스타일 UITableView 섹션에서 셀 테두리를 제거하는 가장 쉬운 방법 :

[tableViewOutlet setBackgroundView:nil];

viewDidLoad 메서드에서.


 UIView *backView = [[UIView alloc] initWithFrame:CGRectZero];
 backView.backgroundColor = [UIColor clearColor];
 cell.backgroundView = backView;
 cell.backgroundColor = [UIColor clearColor];
 [cell.contentView addSubview:imageView];

사용자 정의 UITableCellView가있는 경우보기에 다음 메소드를 추가하여 배경보기를 제거 할 수 있습니다.

- (void)setBackgroundView:(UIView *)backgroundView
{
    // We don't want background views for this cell.
    [super setBackgroundView:nil];
}

나는 그의 솔루션을 사용하여 내 의견을 @Intentss에 대한 답변으로 변환 할 것이라고 생각했습니다.

ARC를 사용하여 그룹화 된 UITabelView와 함께 iOS6.1 사용 :

[tableView setSeparatorColor : [UIColor clearColor]];

작동하지 않습니다

cell.backgroundView = [[UIView 할당] initWithFrame : CGRectZero];

작동합니까

참고URL : https://stackoverflow.com/questions/4202965/removing-cell-borders-from-a-section-of-grouped-style-uitableview

반응형