(Macbook Air M1 8-256 Monterey 12.5.1 Xcode 13.3)
Why?
앱을 구현하고 있는 도중 다음과 같은 공백을 발견했습니다.
상단에는 NavigationBar가 있고, 밑에는 TableView가 있는 ViewController입니다.
분명 예전에 구현했을 때 이런 issue가 없었던 것 같은데...(?)
분명 제약을 제대로 설정했는데도 불구하고,
왜 이런 공백이 나오나 싶어서 구글링한 결과 다음과 같은 해결방법을 찾을 수 있었습니다.
해결방법
이 issue는
padding issue, tableview header gap issue, navigateionbar bottom space view top issue,
navigationbar bottom view top not match issue 등등..
여러 이름으로 글들이 있었습니다.
참고링크: https://medium.com/@GalvinLi/fix-the-table-header-gap-in-ios-15-197debb92608
구글링한 링크를 참조해보니, iOS15부터 이런 issue가 있었던 듯 싶습니다.
지금까지 프로젝트들이 대부분 iOS 13 혹은 iOS 14로만 다뤄서 만나보지 못했던 것 같네요.
저의 경우,
첫번째 방법인 padding = 0을 주는 코드를 실행했지만, 코드가 적용되지 않아서
두번째 방법인 headerView를 수정하는 방향으로 코드를 수정했습니다.
1차 시도
// viewDidLoad
tableView.sectionHeaderTopPadding = 0
2차 시도
UITableView.appearance().tableHeaderView = .init(frame: .init(x: 0, y: 0, width: 0, height: CGFloat.leastNonzeroMagnitude))
결과를 확인해보겠습니다.
다행히 잘 해결되었네요.!
스토리보드로 테스트 구현했을 때는 이런 issue가 생기지 않았던 것으로 기억하는데,
코드로 구현할 때 이런 issue가 발생하는 것 같네요.
필요한 분들에게 도움이 되셨으면 좋겠습니다.
오류가 있거나, 피드백이 있다면 언제든지 댓글로 알려주세요!
감사합니다 :)
'iOS > Xcode, UI' 카테고리의 다른 글
Alert Controller 사용하기 (0) | 2023.01.19 |
---|---|
present closure처럼 pushViewController로는 쓸 수 없는걸까? (0) | 2023.01.06 |
Protocol과 Delegate Pattern을 이용해 Data를 가져와 표시하는 화면 구성하기. +체크표시 활성화하기 (1) | 2022.10.05 |
Protocol과 Delegate Pattern을 이용해 Data를 가져와 표시하는 화면 구성하기. (1) | 2022.09.21 |
super.viewDidLoad() 꼭 호출해야할까? (0) | 2022.05.24 |