UI 테이블 뷰에서 횡단면 사이의 공간
두 섹션 사이의 공간을 줄여야 합니다.UITableView
이 질문을 살펴보았지만 바닥글과 머리글의 공간이 결합되어 있기 때문에 솔루션에서 사용자 지정 머리글 보기를 허용하지 않습니다.
여기 사진이 있습니다.UITableView
검은색은.UITableView
배경색
iOS 15에서는 섹션을 축소할 수 있습니다.머리글 맨 위 패딩
if #available(iOS 15.0, *) {
tableView.sectionHeaderTopPadding = 0
}
이 기능을 재정의하려고 했습니까?
override func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
return .leastNormalMagnitude
}
스토리보드나 XIB에서 바닥글 보기 높이를 최소로 조정하면 해결할 수 있을 것 같습니다.
저는 당신이 바닥글 높이에 대해 당신의 코드에 무엇을 썼는지 모릅니다.제가 틀렸다면 죄송합니다.
UI 테이블 보기에서 바닥글 보기 숨기기 복제 가능성
Swift 4+의 경우 이 두 가지 방법을 구현해야 합니다.
extension MyViewController : UITableViewDelegate {
func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
return CGFloat.leastNormalMagnitude
}
func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
return UIView()
}
}
스위프트 3용
override func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
return CGFloat.leastNormalMagnitude
}
Swift 5+의 경우:
기본적으로 머리글과 바닥글을 위한 공간이 있습니다.그것이 제가 섹션의 정확한 분리를 설정하는 데 문제가 있었던 이유입니다.
두 섹션을 분리하는 방법은 다음과 같습니다.
override func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
if section == 0 {
return 24
} else if section == 1 {
return 32
} else {
return 40
}
}
override func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
nil
}
override func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
nil
}
override func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
CGFloat.leastNormalMagnitude
}
ViewForFooterInSection 및 ViewForHeaderInSection에서 볼 수 있듯이 0을 반환해야 했습니다.
바닥글만 변경하려는 경우높이, CGFloat.HeaderInSection의 높이에 대한 최소 Normal Aziginance를 반환하고 FooterInSection의 높이에 대한 각 섹션의 높이를 반환합니다.
이카로가 올린 답변과 함께 당신도 구현해야 한다는 것을 추가하고 싶습니다.tableView:viewForFooterInSection:
메서드 반환nil
아래 빈 공간을 제거할 섹션의 경우 다음과 같이 됩니다.
-(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
return 0.001f;
}
-(UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section {
return nil;
}
방법을 사용해야 합니다.heightForHeaderInSection
헤더와 셀 텍스트 사이의 공간을 정의합니다.다른 섹션에 따라 변경할 수도 있습니다. 예를 들어 일부 섹션에서는 더 많은 거리를 표시해야 할 수도 있고 일부 섹션에서는 간격을 표시하지 않을 수도 있습니다.이러한 경우 사용할 수 있습니다.CGFLOAT_MIN
0.000001f입니다.예를 들어, 다른 헤더 높이로 다른 섹션을 사용하는 방법을 설명합니다.
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
if (section == 0 || section == 2)
{
return 55.0;
}
else
{
return CGFLOAT_MIN;
}
}
테이블 뷰 섹션 헤더의 맨 위 패딩을 줄이기만 하면 되었습니다.
tableView.sectionHeaderTopPadding = 0
TableViewDelegate 메서드는 float 값이 0.0f일 때 적용되지 않습니다.그보다 더 큰 값을 지정해 보십시오.
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
return 0.00001f;
}
- (UIView*)tableView:(UITableView*)tableView
viewForFooterInSection:(NSInteger)section {
return [[UIView alloc] initWithFrame:CGRectZero];
}
이는 다음에도 도움이 될 수 있습니다.
override func viewDidLoad() {
super.viewDidLoad()
tableView.sectionHeaderHeight = UITableViewAutomaticDimension
}
다음을 선택합니다.tableView
스토리보드/객체코드에서 스타일이 다음으로 설정되었는지 확인합니다.Plain
에 Grouped
이 설정은 "Inspector" 특성 탭에서 확인할 수 있습니다.
let myTableView : UITableView = {
let tableView = UITableView(frame: .zero, style: .plain)
tableView.register(TableCellClass.self, forCellReuseIdentifier: "cellId")
tableView.backgroundColor = UIColor(red: 123/255, green: 190/255, blue: 120/255, alpha: 1)
tableView.separatorStyle = .none
tableView.translatesAutoresizingMaskIntoConstraints = false
return tableView
}()
구현하기보다는UITableViewDelegate
및 섹션 : 를 통한 높이:CGFloat.leastNormalMagnitude
또는 정당하게 할 수 있습니다.
tableView.sectionFooterHeight = 0
바닥글이 없는 동안 섹션 사이의 간격이 사라집니다.
메커니즘은 으로 이 이 " 메니기은으이로값다같설다정니이됩음과이이본적즘커다"로 설정되어 있다는 입니다.UITableView.automaticDimension
.
하는 한은
- 그것은 남습니다
UITableView.automaticDimension
- 바닥글 구성을 구현하는 대리자/데이터소스 메서드가 없습니다.
titleForFooterInSection
/viewForFooterInSection
- 테이블 뷰의 스타일이 다음으로 설정됨
.grouped
그러면 UITableView가 뷰가 없는 섹션 사이에 의도적으로 간격을 삽입합니다.
당신은 변합니다.sectionFooterHeight
0까지, 마법은 사라집니다.
Xcode 13.2에서는 스토리보드에서 섹션의 머리글 및 바닥글 높이를 조정할 수 있습니다. 아래 스크린샷을 참조하십시오.
를 구현하면 됩니다.heightForHeaderInSection
&heightForFooterInSection
.
은 Section 0 안면섹 됩니다션환반값(이라도 0이 는 안 . 섹션의 높이는입니다. 값이 합니다. 사용해 보십시오. 매우 작은 값이 필요합니다. 시도해 보십시오.CGFLOAT_MIN
.
예를 들어,
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
if (section == [self.dataArray indexOfObject:self.bannerList]) {
return 46;
}
return CGFLOAT_MIN;
}
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
return CGFLOAT_MIN;
}
나를 위해 일하세요.
tableView.sectionFooterHeight = 10
// ...
func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
return nil
}
swift 5 iOS 15
self.tableView.estimatedSectionFooterHeight = 16.0 // spacing between Sections
UITableView 맨 위에 있는 첫 번째 셀에만 간격이 필요하고 스크롤 후 머리글 섹션에 공백이 없어야 하는 경우,contentInsets.top
수행:
간격을 조정하여 가짜를 추가합니다.height
그리고 그것을 에 놓습니다.
다음은 SnapKit 사용 방법입니다.
let spaceView = UIView()
spaceView.snp.makeConstraints {
$0.height.equalTo(10)
}
tableView?.tableHeaderView = spaceView
tableHeaderView
않아 에는 고정되상않이경지, 때의간격우의 맨 .tableView
▁▁be 될 것입니다.10
스크롤한 tableView
위쪽의 간격은 사라지고 위쪽의 간격만 유지됩니다.
이것은 iOS 15 이상에서 작동할 것입니다.
if #available(iOS 15.0, *) {
tableView.sectionHeaderTopPadding = 0
}
헤더 섹션이 여러 개인 경우 헤더와 셀 사이의 자동 공간이 줄어듭니다.
모든 것을 시도했지만 설정 섹션으로 수정되었습니다.머리글 맨 위에 0으로 패딩합니다.이 기능은 15.0 이후에만 사용할 수 있습니다.
tableView.sectionHeaderTopPadding = 0.0
언급URL : https://stackoverflow.com/questions/30364067/space-between-sections-in-uitableview
'programing' 카테고리의 다른 글
마리아DB 커뮤니케이션즈예외:통신 링크 장애 (0) | 2023.09.07 |
---|---|
파워셸에서 배치 스크립트를 어떻게 호출합니까? (0) | 2023.09.02 |
WCF 웹 서비스 오류:서비스가 ASP를 지원하지 않으므로 활성화할 수 없습니다.NET 호환성 (0) | 2023.09.02 |
R에서 데이터베이스 연결의 필터에서 문자 벡터를 사용하는 방법은 무엇입니까? (0) | 2023.09.02 |
div 내부에 이미지(img)를 맞추고 가로 세로 비율을 유지하려면 어떻게 해야 합니까? (0) | 2023.09.02 |