문제점
- 화면을 스크롤해서 내리는 과정에서 상단 상태 바과 네비게이션 바가 겹치는 문제 발생
해결 방법
- 직관적으로 상단 상태 바에 배경색을 지정
class HomeViewController: UIViewController {
...
// 상태 표시줄 배경색 뷰
private let statusBarBackgroundView: UIView = {
let view = UIView()
view.backgroundColor = .systemBackground// 원하는 색상으로 설정
return view
}()
// MARK: - Life Cycle
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .systemBackground
view.addSubview(homeFeedTable)
let headerView = HeroHeaderUIView(frame: CGRect(x: 0, y: 0, width: view.bounds.width, height: 440))
homeFeedTable.tableHeaderView = headerView
// 상태 표시줄 배경색 뷰 추가
if let windowScene = UIApplication.shared.connectedScenes.first as? UIWindowScene,
let window = windowScene.windows.first(where: { $0.isKeyWindow }) {
window.addSubview(statusBarBackgroundView)
window.bringSubviewToFront(statusBarBackgroundView)
}
homeFeedTableDelegate()
configureNaviBar()
}
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
let padding: CGFloat = 5
homeFeedTable.frame = view.bounds.inset(by: UIEdgeInsets(top: padding, left: padding, bottom: padding, right: padding))
// 상태 표시줄 배경색 뷰의 프레임 설정
let statusBarHeight = view.window?.windowScene?.statusBarManager?.statusBarFrame.height ?? 0
statusBarBackgroundView.frame = CGRect(x: 0, y: 0, width: view.bounds.width, height: statusBarHeight)
}
...
'Project > WhereToGo' 카테고리의 다른 글
ScrollView 안에 PageControl 기능 넣기 (1) | 2024.08.04 |
---|