UITableView의 셀 앞에 빈 공간 제거
는 현재 는재현 a a를 .UITableView뷰 컨트롤러 상단이 아닌 다른 위치에 있습니다.이와 같이 네비게이션 바를 설명하기 위해 상단의 헤더를 추가하려고 하지만 컨트롤러 상단이 없기 때문에 이 작업은 필요하지 않습니다.
왼쪽 상단 모서리를 붙이면UITableView내가 원하는 곳에 세포를 배치하지 않는다.

셀이 올바른 위치에 있도록 테이블 보기를 위로 이동하면 다른 문제가 발생합니다. 스크롤할 때 셀이 위로 이동할 수 있습니다(이것은 내비게이션 컨트롤러 위에 손가락을 올려놓은 상태입니다).

손을 놓으면 셀이 검색창 바로 아래로 이동하지만 어떻게 셀을 위로 이동시킬 수 있는지가 분명 문제입니다.
이걸 어떻게 하면 좋을까요?더 쉬운 방법은 없나요?
이 을 해 .UITableView빈간 표시 시시 시? ???
경우 되어 있을 수 있습니다.UITableView뷰에 있는 내비게이션 컨트롤러 때문입니다.스크롤이 발생하지 않았을 때 내용을 탐색바 아래에 배치하기 위해 삽입이 테이블뷰에 추가됩니다.테이블이 스크롤되면 내용이 스크롤되고 투명한 탐색 모음 아래에 표시됩니다.이 동작은 테이블 뷰가 네비게이션바 바로 아래에서 시작되는 경우에만 필요합니다.여기서는 그렇지 않습니다.
하나 뷰 내의 첫입니다.UIScrollView후예( 후예UITableView ★★★★★★★★★★★★★★★★★」UICollectionView되어 있는 automaticallyAdjustsScrollViewInsets첫 번째 것만 조정합니다.
이 동작을 변경하는 방법은 다음과 같습니다.
a) 인터페이스 빌더
- 뷰 컨트롤러를 선택합니다.
- 속성 검사기 열기
IB의 속성 검사기(뷰 컨트롤러를 선택한 경우)에는 기본적으로 켜져 있는 "Adjust croll view insets"라는 속성이 있습니다.이 옵션의 선택을 해제합니다.

(이미지 제공: Dheeraj D)
어떤 Xcode 버전이 이 옵션을 도입했는지 알 수 없지만(릴리스 노트에는 기재되어 있지 않습니다), 적어도 버전 5.1.1에서는 사용할 수 있습니다.
편집: 혼란을 피하기 위해 댓글에 언급된 세 번째 옵션입니다.
b) 프로그램적으로
이것을 에 추가합니다. viewDidLoad(Slavco Petkovski의 답변과 Cris R의 코멘트를 인용)
// Objective-C
self.automaticallyAdjustsScrollViewInsets = NO;
// Swift
self.automaticallyAdjustsScrollViewInsets = false
c) 이것은 나이 든 학생에게 관련이 있을 수 있다.
다음을 추가하여 이 문제를 해결할 수 있습니다.
tableView.contentInset = UIEdgeInsetsZero
//Swift 3 Change
tableView.contentInset = UIEdgeInsets.zero
또는 IB를 사용하는 경우 및 탐색 막대가 투명하지 않은 경우(스크린샷으로 알 수 없음)
- 뷰 컨트롤러를 선택합니다.
- 속성 검사기 열기
- View Controller options Extend Edges 섹션의 "Top Bars" 선택을 취소합니다.
나도 같은 문제가 있었고 나도 한때 유비뉴가 있었다고 확신해테이블 뷰 전체를 복사하여 삭제하고 다시 붙여넣기만 하면 수정이 됩니다.
스토리보드에서 테이블 뷰를 선택하고 스타일이 "그룹화"가 아닌 "일반"으로 설정되어 있는지 확인합니다.이 설정은 속성 Inspector 탭에서 확인할 수 있습니다.
위의 어느 것도 도움이 되지 않았지만, 이렇게 하면 도움이 되었습니다.
self.tableView.contentInset = UIEdgeInsetsMake(-64, 0, 0, 0)
-64탐색 모음의 높이에 따라 다른 숫자를 입력할 수 있습니다.
My Case에서는 뷰 계층의 UITable View 아래에 UILabel이 있습니다.
"앞으로" 움직이자 빈칸이 나타났다.이유는 모르겠지만 이렇게 동작합니다.tableView 아래에 아무것도 있으면 공백이 숨겨집니다.
또한 스토리보드의 뷰 컨트롤러 인스펙터에서 "Adjust Scroll View Insets" 체크/체크 해제를 시도할 수도 있습니다.

iOS 11에서 이 작업을 수행하는 경우 자동으로 Scroll View 조정인스톨은 권장되지 않기 때문에 기능하지 않습니다.이 게시물의 답변에 따라 다음 코드가 동작합니다.https://stackoverflow.com/a/44391269/5476481
if #available(iOS 11.0, *) {
tblView.contentInsetAdjustmentBehavior = .never
} else {
automaticallyAdjustsScrollViewInsets = false
}
이게 도움이 됐으면 좋겠다.
첨가된 것이 수 .UIRefreshControl하다
self.refreshControl = [[UIRefreshControl alloc] init];{
[self.refreshControl setAttributedTitle:[[NSAttributedString alloc]
initWithString:@"Your string"]];
[self.refreshControl addTarget:self
action:@selector(updateScreen)
forControlEvents:UIControlEventValueChanged];
}
바와 같이, 시시 as as as as, 는 as as as로 설정했습니다.self.refreshController직 init
<고객명>을하면 <고객명>님이refreshControl셋업 후 상단 공간은 간섭하지 않습니다.
UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];{
[self.refreshControl setAttributedTitle:[[NSAttributedString alloc]
initWithString:@"Your String"]];
[self.refreshControl addTarget:self
action:@selector(updateScreen)
forControlEvents:UIControlEventValueChanged];
self.refreshControl = refreshControl;
}
스위프트 5
테이블 제거로 시도HeaderView 및 tableFooterView
var frame = CGRect.zero
frame.size.height = .leastNormalMagnitude
tblView.tableHeaderView = UIView(frame: frame)
tblView.tableFooterView = UIView(frame: frame)
[ [ ]를 합니다.contentInsetstableview하지 않다
확실히 말할 수는 없지만 프로토타입 셀의 시작 부분과 UITable View의 상단 사이에 여분의 UIView가 끼어 있는 것 같습니다.추가한 텍스트나 행을 삭제하면 내 이미지는 당신의 이미지와 똑같이 보입니다.

맨 위에 있는 추가 공간의 원인은 아직 알 수 없지만 UITableView를 공백으로 삭제하고 새 공간으로 교체하면 공간이 절약됩니다.
실수로 UIView를 끌어다 놓은 것 같은데 선택할 수 없어서 삭제할 수 없었어요.
제 어플리케이션에서도 이런 문제가 있었습니다.tableView0 의 .false★★★★★★에automaticallyAdjustsScrollViewInsets하지만 소용없었다.
마침내 나는 효과적인 해결책을 얻었다.이 길이 맞는지 모르겠어요., ,, 현의 heightForHeaderInSection★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★이를 수행하려면 0이 아닌 값을 반환해야 합니다(return 0은 이전과 같은 공간을 표시합니다).
override func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
return 0.1
}
iOS 11 이상에서는, Apple이 컨텐츠 삽입을 조정하기 위해서 속성을 변경했습니다.contentInsetAdjustmentBehavior를 설정합니다..never을 UICollectionView,UIScrollView,UITableView.
if #available(iOS 11.0, *) {
// For scroll view
self.scrollView.contentInsetAdjustmentBehavior = .never
// For collection view
self.collectionView.contentInsetAdjustmentBehavior = .never
// For table view
self.tableView.contentInsetAdjustmentBehavior = .never
} else {
self.automaticallyAdjustsScrollViewInsets = false
}
이것이 당신에게 도움이 되길 바랍니다.
스토리보드 또는 xib에서 테이블 뷰 프레임을 확인합니다.디폴트로는 마이닝의 위치값이 y이기 때문에 버그가 발생합니다.
2017년에 나에게 효과가 있는 것은 이 한 줄뿐이다.
네비게이션 컨트롤러?navigationBar.is반투명 = false
그게 왜 영향을 미치는지 모르겠어요누군가 설명해 줄 수 있을 거야하지만 나는 이것이 대부분의 사람들이 찾는 답이라고 확신한다.
이 문제는 메뉴에서 테이블 뷰로 프로토타입 셀을 끌어다 놓았을 때 발생했습니다.그래서 나는 그것을 삭제하고 테이블 뷰 검사기 속성에서 프로토타입 셀을 1로 설정했다.
프로그래밍 방식으로 하고 있는데, 다른 서브뷰를 모두 추가한 후 addSubview(tableView)를 하단으로 이동시키면 문제가 해결되었습니다!
왜 시뮬레이터가 아닌 장치에만 표시되는지 모르겠지만 적어도 간단한 해결책이 있습니다!
UITableView가 뷰 컨트롤러의 첫 번째 서브뷰가 아닌 한 빈 공간은 표시되지 않습니다.
솔루션:뷰 컨트롤러의 첫 번째 서브뷰로 숨김/클리어 뷰 오브젝트(뷰, 라벨, 버튼 등)를 추가합니다(UITableView와 동일하지만 그 앞에 있음).
UIView는 테이블 상단과 하단에 삽입할 수 있습니다(드래그 앤 드롭).속성을 투명하게 설정하고 높이를 1ppx로 설정합니다.이것은 셀 앞에 있는 여분의 패딩을 제거하기 위한 것입니다.
계층 내 마지막 보기가 아닌 tableView도 이 문제가 있었습니다.제 경우 위 뷰가 있어서 (서로 겹치지 않더라도) 계층 내 tableView 위로 끌어다 놓았습니다.
나는 이것에 대한 해결책을 방금 찾았다.
테이블 뷰와 clic Editor를 선택하면 됩니다.-> 배열 -> 앞으로 보내기
효과가 있었고 여러분 모두에게 도움이 되길 바랍니다.
저는 ContainerViewController를 사용하여 UITableViewController를 넣었습니다.ContainerViewController 삭제 후.문제는 없어진다.
Xcode 8 버그...
Storyboard UITableView스타일이 [보통]으로 설정되어 있는 경우는, 우선 이것을 시험해 주세요.
표 유형을 그룹화(Grouped)로 설정한 후 일반으로 다시 설정합니다.이를 통해 앱의 UITableView 선두에 있는 공간이 제거되었습니다.
저 같은 경우에는 컨테이너 뷰를 사용하고 있었습니다.(메인뷰 -->컨태너뷰 -->UITableView)
상단의 여유 공간은 디바이스 알림 바의 공간(시간이 표시되는 장소, 배터리)과 같다고 생각합니다.정말이야, 그건 추측이 아니야.
UI Builder에서 작업을 수행했습니다.
- Table View Controller complete
- 속성 검사기 열기
- -> 뷰 컨트롤러 -> 레이아웃 -> "전체 화면 선택"으로 이동합니다.
이 코드를 사용하여 테이블이 생성되는 viewDidLoad 또는 viewDidAppear에 입력할 수 있습니다.
// Remove blank space on header of table view
videoListUITableView.contentInset = UIEdgeInsetsZero;
// The iOS device = iPhone or iPod Touch
CGSize iOSDeviceScreenSize = [[UIScreen mainScreen] bounds].size;
// Set the height of the table on the basis of number of rows
videoListUITableView.frame = CGRectMake(videoListUITableView.frame.origin.x, videoListUITableView.frame.origin.y, videoListUITableView.frame.size.width, iOSDeviceScreenSize.height-100);
// Hide those cell which doesn't contain any kind of data
self.videoListUITableView.tableFooterView = [[UIView alloc] init];
I just found a solution for this. In my case, i was using TabBarViewController, A just uncheck the option 'Adjust Scroll View Insets'. Issues goes away. https://i.stack.imgur.com/vRNfV.png
하여 ViewController의 Extended Edge를 설정합니다.underTopBar속성이 선택 해제되어 있습니다.
같은 문제를 겪고 있었다.viewDidLoad에 다음 사항을 추가하여 해결했습니다.
self.extendedLayoutIncludesOpaqueBars = true
최신 답변: XCode 12.5.1, IOS 14
그룹화된 테이블뷰의 디폴트 동작에서는 선두에 이러한 종류의 빈 헤더가 있습니다.
않는 으로 '어울리지 않도록', '어울리지 않도록', '어울리지 않도록를 사용하는 ..plain이치노
어떤 이유로 할 수 없는 경우, 다음 예시와 같이 높이가 0이 아닌 보기로 헤더를 설정해야 합니다.
self.tableView.tableHeaderView = UIView(frame: CGRect(x: 0, y: 0,
width: self.tableView.bounds.size.width,
height: .leastNonzeroMagnitude))
언급URL : https://stackoverflow.com/questions/18906919/remove-empty-space-before-cells-in-uitableview
'programing' 카테고리의 다른 글
| 후행 줄바꿈을 삭제하려면 어떻게 해야 합니까? (0) | 2023.04.11 |
|---|---|
| UICollectionView를 프로그래밍 방식으로 작성하다 (0) | 2023.04.11 |
| 'UserControl' 유형이 직접 콘텐츠를 지원하지 않습니다. (0) | 2023.04.11 |
| SQL 문의 필드에서 선행 0 제거 (0) | 2023.04.11 |
| WPF에서 창을 최소화하시겠습니까? (0) | 2023.04.11 |

