ios - swift tableview 구분선
인터페이스 빌더 (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으로 설정하십시오.
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 동작의 문제는 아니어야합니다.
여분의 구분선 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)
}
}
테이블 뷰를 사용하여 고정 된 높이의 행을 고정 된 수만큼 표시하므로 크기를 간단히 조정하고 스크롤 할 수 없게 만들었습니다.
tableView
에 tableFooterView
가 있으면 UIKit
빈 셀을 만들지 않습니다. 그래서 우리는 트릭을 만들고 zero height UIView
객체를 tableView
바닥 UIView
할당 할 수 있습니다.
tableView.tableFooterView = UIView()
SWIFT 3.0 은 tableView.tableFooterView = UIView()
와 잘 작동합니다.