화면 상단에 표시되고 잠시 후 사라지고 나중에 다시 표시 될 수있는 정보보기를 만들고 싶습니다.iOS - 화면 상단에 숨겨진 UIView
내가 UIView의를 생성하고 설정 한 제약 :
topInfoView.leadingAnchor.constraint(equalTo: mainView.leadingAnchor)
topInfoView.trailingAnchor.constraint(equalTo: smainView.trailingAnchor)
topInfoView.heightAnchor.constraint(equalToConstant: HEIGHT)
닫힌 상태 : topInfoView.topAnchor.constraint (EqualTo가 : mainView.topAnchor 일정 : -height)
열기 상태 : topInfoView. topAnchor.constraint (equalTo : mainView.topAnchor, 상수 : 0)
여기에서 mainView
은 주 UIViewCcontroller
입니다.
나는 내 사용자 높이 + "상태 표시 줄 높이"(배터리가있는 바, Wi-Fi 등)로 HEIGHT
을 설정했습니다. 문제는 상태 표시 줄 높이가 0이고 topInfoView가 잘못 배치 된 경우입니다. 나는이를 통해 "상태 표시 줄 높이"를 취득하고 있습니다 :
func statusBarHeight() -> CGFloat {
let statusBarSize = UIApplication.shared.statusBarFrame.size
return Swift.min(statusBarSize.width, statusBarSize.height)
}
하지만 때로는하지 작업 (뷰 inited는 없습니다?) 나는 또한 상태 표시 줄 다르게 해결된다 새로운 아이폰 X, 확실하지 않다. 높이를 계산하지 않고 다른 방법이 있습니까?
그것을 보여 'viewDidLayoutSubview'에서 얻으십시오 – Tj3n
@ Tj3n 왜 다른 해결책을 찾고 있는데, 그것은 바로 상태 표시 줄 높이에 "기반"이 없습니다. –