UITableView 아래의 추가 구분 기호 제거
행이 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];
}
여기에 그룹화 된 테이블 스타일을 사용하여이를 수행하는 또 다른 방법이 있으며 아마도 추측하지 못할 것입니다. 표에
머리글과 바닥 글을
추가
하면
(아마도 하나 또는 다른 것으로 충분하며 선택하지 않았 음)
구분 기호가 필러 / 빈 행에서 사라집니다.
나는 고기가 많은 손가락이있는 테이블 셀 대신 버튼을 누르는 위험을 줄이기 위해 테이블의 상단과 하단에 약간의 공간을 원했기 때문에 이것을 우연히 발견했습니다. 여기에 빈 뷰를 머리글과 바닥 글로 고정하는 방법이 있습니다. 원하는 높이를 사용하면 추가 구분선이 제거됩니다.
- (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에 대한 응답으로 내 앱의 코드 (iTunes 스토어의 "AcmeLists"목록 관리자 ...)로 돌아가서 확인을 위해 addHeaderAndFooter 메서드를 단락했습니다. 그것 없이는 여분의 행 구분 기호가 있습니다. 코드를 사용하면이 창 스냅에서 볼 수있는 내용이 있습니다. 테이블 행 구분 기호 없음 그림 . 그래서 왜 당신에게 효과가 없었을 지 모르겠습니다. 또한 테이블 뷰에 사용자 지정 바닥 글이 있으면 그 아래에있는 빈 행에 대한 행 구분 기호 그리기를 중지해야한다는 것이 이해가됩니다. 그것은 끔찍할 것입니다. 참고로 화면에서 볼 수있는 것보다 많은 행이있는 테이블을 살펴본 다음 두 행이있는 테이블을 살펴 보았습니다. 두 경우 모두 불필요한 구분 기호가 없습니다.
사용자 지정보기가 실제로 추가되지 않았을 수 있습니다. 이를 확인하려면 배경색을 clearColor
, 예를 들어 [UIColor redColor]
. 표 하단에 빨간색 막대가 보이지 않으면 바닥 글이 설정되지 않은 것입니다.
Swift의 UITableView에서 빈 행에 대한 추가 구분선 제거
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
self.yourTableview.tableFooterView = UIView()
}
wkw 답변 을 확장하고 싶습니다 .
높이가 0 인 바닥 글 만 추가하면됩니다. (sdk 4.2, 4.4.1에서 테스트 됨)
- (void) addFooter
{
UIView *v = [[UIView alloc] initWithFrame:CGRectZero];
[self.myTableView setTableFooterView:v];
}
또는 더 간단합니다-테이블 뷰를 설정하는 곳에 다음 줄을 추가하십시오.
//change height value if extra space is needed at the bottom.
[_tableView setTableFooterView:[[UIView alloc] initWithFrame:CGRectMake(0,0,0,0)]];
또는 더 간단하게-단순히 구분 기호를 제거하십시오.
[_tableView setTableFooterView:[UIView new]];
다시 wkw 덕분에 :)
스토리 보드를 사용하는 iOS 7 이상
a UIView
를 UITableView
바닥 글로 드래그하기 만하면 됩니다. 바닥 글보기의 높이를 0으로 설정합니다.
이 시도. 그것은 나를 위해 일했습니다.
- (void) viewDidLoad
{
[super viewDidLoad];
// Without ARC
//self.tableView.tableFooterView = [[[UIView alloc] init] autorelease];
// With ARC, tried on Xcode 5
self.tableView.tableFooterView = [UIView new];
}
Swift의 경우 :
override func viewDidLoad() {
super.viewDidLoad()
tableView.tableFooterView = UIView()
}
마지막에 빈 바닥 글을 추가하면 빈 셀을 숨길 수 있지만 매우보기 흉하게 보일 것입니다.
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
Swift를 사용 하는 경우 tableview를 관리하는 컨트롤러의 viewDidLoad 에 다음 코드를 추가합니다 .
override func viewDidLoad() {
super.viewDidLoad()
//...
// Remove extra separators
tableView.tableFooterView = UIView(frame: CGRectZero)
}
Swift 4.0의 경우 CGRectZero는 더 이상 사용되지 않으므로 사용해야합니다. CGRect.zero
J. Costa의 솔루션 발전 : 다음 코드 줄을 입력하여 테이블을 전체적으로 변경할 수 있습니다.
[[UITableView appearance] setTableFooterView:[[UIView alloc] initWithFrame:CGRectZero]];
가능한 첫 번째 메서드 내부 (보통 AppDelegate
, in : application:didFinishLaunchingWithOptions:
메서드).
나는이 질문이 대답을 받아 들였지만 여기에 추가 구분선을 숨기는 방법에 대해 다른 방법을 넣었습니다 UITableView
.
tableView
의 표준 구분선을 숨기고 각 셀의 맨 위에 사용자 정의 선을 추가 할 수 있습니다.
최신 정보:
사용자 지정 구분 기호를 추가하는 가장 쉬운 방법 UIView
은 1px 높이의 간단한 부분 을 추가하는 것 입니다.
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];
하나를 시도하십시오.
이 코드 ( Swift )를 추가하기 만하면 됩니다. .
tableView.tableFooterView = UIView()
uitableview 추가 구분선 숨기기 추가 구분선 숨기기 신속한 3.0에서 숨기기
self.tbltableView.tableFooterView = UIView(frame: .zero)
Swift 는 다음과 잘 작동합니다.
tableView.tableFooterView = UIView()
마지막 셀 뒤에 구분 기호가 필요하지 않으면 바닥 글에 0에 가깝지만 0이 아닌 높이가 필요합니다.
귀하의 UITableViewDelegate
:
func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
return .leastNormalMagnitude
}
원하는 구분선 색상을 배경색으로, 100 % 너비, x0 y-1 위치에 1px 높이의 뷰를 tableViewCell에 추가하기 만하면됩니다. tableViewCell이 subview를 자르지 않고 tableView가 있어야합니다.
따라서 코드 또는 IB별로 해킹하지 않고 기존 셀 사이에서만 절대적으로 간단하고 작동하는 구분 기호를 얻습니다.
참고 : 수직 상단 바운스에서는 첫 번째 구분자가 표시되지만 기본 iOS 동작이므로 문제가되지 않습니다.
고정 된 높이의 행을 표시하기 위해 테이블보기를 사용하고 있었으므로 크기를 조정하고 스크롤 할 수 없도록 설정했습니다.
이 질문에 대한 많은 답변을 찾을 수 있습니다. 대부분은 UITableView
의 tableFooterView
속성을 사용한 조작 과 관련이 있으며 이것은 빈 행을 숨기는 적절한 방법입니다. 편의를 위해 Interface Builder에서 빈 행을 켜거나 끌 수있는 간단한 확장을 만들었습니다. 이 요점 파일 에서 확인할 수 있습니다 . 시간을 조금 절약 할 수 있기를 바랍니다.
extension UITableView {
@IBInspectable
var isEmptyRowsHidden: Bool {
get {
return tableFooterView != nil
}
set {
if newValue {
tableFooterView = UIView(frame: .zero)
} else {
tableFooterView = nil
}
}
}
}
용법:
tableView.isEmptyRowsHidden = true
프로그래밍 방식으로 UItableview 하단에서 추가 구분선을 제거하려면 두 줄의 코드를 작성하면 추가 구분선이 제거됩니다.
tableView.sectionFooterHeight = 0.f;
tableView.sectionHeaderHeight = 0.f;
이 트릭은 항상 나를 위해 일하고 있습니다.
Swift 4.0 확장
스토리 보드를위한 약간의 확장 :
extension UITableView {
@IBInspectable
var hideSeparatorForEmptyCells: Bool {
set {
tableFooterView = newValue ? UIView() : nil
}
get {
return tableFooterView == nil
}
}
}
빠르고 쉬운 Swift 4 way.
override func viewDidLoad() {
tableView.tableFooterView = UIView(frame: .zero)
}
정적 셀이있는 경우. Inspector 창에서 구분 기호를 끌 수도 있습니다. (분리기가 필요한 경우에는 바람직하지 않습니다.이 경우 위에 표시된 방법을 사용하십시오.)
나는 승인 된 답변 (iOS 9+, Swift 2.2) 중 하나를 구현하는 데 행운이있었습니다. 나는 구현을 시도했다.
self.tableView.tableFooterView = UIView(frame: .zero)
그러나 제에는 아무런 영향이 없었습니다. 제가 tableView
사용하고 있다는 사실과 관련이있을 수 있다고 생각합니다 UITableViewController
.
대신 viewForFooterInSection
메서드 를 재정의하기 만하면됩니다 ( tableFooterView
다른 곳에 설정하지 않았습니다 ).
override func tableView(tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
return UIView(frame: .zero)
}
이것은 tableView
단일 섹션 에서 잘 작동했습니다 (여러 섹션이있는 경우 마지막 섹션을 지정해야합니다).
UITableview에서 원하지 않는 공간을 제거하려면 아래 두 가지 방법을 사용할 수 있습니다.
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
return 0.1;
}
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
{
return 0.1;
}
섹션이 하나 뿐인 경우 가장 빠르고 쉬운 방법은 테이블보기 스타일을 "일반"에서 "그룹화"로 설정하는 것입니다. (이미지 참조)
섹션이 더있는 경우 헤더 높이를 0으로 설정해야 할 수 있습니다 (귀하 / 귀하의 고객 / 프로젝트 관리자의 취향에 따라 다름).
더 많은 섹션이 있고 머리글을 엉망으로 만들고 싶지 않은 경우 (가장 간단한 경우 한 줄인 경우에도) UIView를 바닥 글로 설정해야합니다 (이전 답변에서 설명한대로).
이 작은 tableview 확장을 추가했습니다.
extension UITableView {
func removeExtraCells() {
tableFooterView = UIView(frame: .zero)
}
}
이것으로 시도
에 대한 목표 C
- (void)viewDidLoad
{
[super viewDidLoad];
// This will remove extra separators from tableview
self.yourTableView.tableFooterView = [UIView new];
}
대한 스위프트
override func viewDidLoad() {
super.viewDidLoad()
self.yourTableView.tableFooterView = UIView()
}
이 시도
self.tables.tableFooterView = [[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 320.0f, 10.0f)];
UIKit
(가) 때 빈 셀을 만들지 않습니다 tableView
있다 tableFooterView
. 따라서 트릭을 만들고 높이가 0 인 UIView
개체를 tableView
.
tableView.tableFooterView = UIView()
경우에 당신은이 searchbar
에 view
(예를 들어 결과의 수를 제한하기 위해), 당신은 또한에 다음을 추가해야 shouldReloadTableForSearchString
하고shouldReloadTableForSearchScope:
controller.searchResultsTable.footerView = [ [ UIView alloc ] initWithFrame:CGRectZero ];
스위프트에서 (I 4.0을 사용하고 있습니다), 사용자 정의 작성하여이 작업을 수행 할 수 있습니다 UITableViewCell
클래스 및 방법. 그런 다음 모두 0 . (테이블보기가있는 메인 클래스는 명확한 배경을 가지고 있습니다) 색상.overriding
setSelected
separator insets
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// eliminate extra separators below UITableView
self.separatorInset = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0)
}
참고 URL : https://stackoverflow.com/questions/1369831/eliminate-extra-separators-below-uitableview
'your programing' 카테고리의 다른 글
AddTransient, AddScoped 및 AddSingleton 서비스 차이점? (0) | 2020.09.30 |
---|---|
vim에서 DOS 줄 끝을 Linux 줄 끝으로 변환 (0) | 2020.09.30 |
JavaScript를 사용하여 URL에서 #hash를 어떻게 확인할 수 있습니까? (0) | 2020.09.29 |
Node.js를 어떻게 업데이트합니까? (0) | 2020.09.29 |
Ajax 요청이 200 OK를 반환하지만 성공 대신 오류 이벤트가 발생합니다. (0) | 2020.09.29 |