그룹화 된 스타일 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으로 설정하는 것도 작동합니다.
콘텐츠보기를 설정하면 테두리도 제거됩니다. 사용자 정의보기를 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];
작동합니까
'Programing' 카테고리의 다른 글
식별자 (id)에 대한 와일드 카드 선택기가 있습니까? (0) | 2020.11.19 |
---|---|
원격 지점으로 푸시 할 수 없습니다. 지점으로 확인할 수 없습니다. (0) | 2020.11.19 |
Python에 메서드가 있는지 확인하는 방법은 무엇입니까? (0) | 2020.11.19 |
PhpStorm으로 xdebug가 첫 번째 줄에서 멈추는 것을 막는 방법은 무엇입니까? (0) | 2020.11.19 |
C #에 "중간"함수가 있습니까? (0) | 2020.11.19 |