iPhone X에서 화면 하단에 View를 고정으로 배치하고 있으면 수수께끼의 여백이 태어났으므로, 노력해 자력으로 채우다
iPhone X에서 UITabBarController 등을 사용하지 않는 화면을 보면,
화면의 최하부에 고정하고 있는 view아래에 수수께끼의 여백이 발생하고 있다! ?
솔직히, 지금 갱감 넘치는 대응이지만 앞으로의 대응을 잊지 않도록 메모적으로!
단말을 옆으로 보았을 때의 일은…
원인!
home 버튼이 사라졌기 때문입니다!
지금까지는 SafeArea의 최하부에서 높이 XX의 UIView를 배치해보고 싶은 느낌이었습니다만, SafeArea보다 더욱 아래가 탄생해 버렸네요…
이것은 에뮬레이터의 safari 왜 채워지고 있습니다만( ˘ω˘)
대책 1
@ichimots 씨가 코멘트에서도 지적대로 화면 하단에 고정하고 있는 view의 bottom을 SuperView.bottom으로 한다!
이것이 가장 간단합니다 ......!
storyboard의 설정을 재작성하는 것만으로도 되어 버리므로 간편! 진짜 추천!
대책 2
SuperView의 bottom을 전제로 하면, 지금의 구성이라고 하의 바와 view가 급접근해 버리는 것이 싫다고 하는 틈새 수요용!
이 속성을 활성화하면 OK! 같은 편리한 솔루션을 찾을 수 없습니다
SafeArea 이후의 부분의 높이를 취득해, 최하부에 배치하고 있는 UIView를 농락한다고 하는 것도 생각했습니다만, 그것도 조금 싫기 때문에.
화면 최하부의 UIView아래에 같은 배경색의 UIView를 또 하나 배치해, 화면의 맨 아래까지 늘린다……라는 바람으로 하면 다른 단말에서도 영향 없이 대응할 수 있는 것은? 라고 생각했으므로, 이 방법으로 대응해 보려고 생각합니다.
구현
for_iphonex.swiftclass BottomFillView: UIView {
func add(_ baseVC: UIViewController, bottomView: UIView) {
self.backgroundColor = bottomView.backgroundColor
baseVC.view.addSubview(self)
constrain(self, bottomView) { view, bottomView in
view.top == bottomView.bottom
view.trailing == view.superview!.trailing
view.leading == view.superview!.leading
view.bottom == view.superview!.bottom
}
}
}
라는 확장 UIView를 준비해 보았습니다.
yobidashi.swiftoverride func viewDidLoad() {
super.viewDidLoad()
BottomFillView().addX(self, bottomView: bottomView)
}
이런 느낌으로 불러 주면 새롭고, 순백이었던 화면 하단이 같은 색으로 채워지고 있다!
라고, 여기까지 했습니다만… … storyboard만으로 대책할 수 있는 방법이!
대책 3
@ichimots 씨가 코멘트에서도 지적대로 화면 하단에 고정하고 있는 view의 bottom을 SuperView.bottom으로 한다!
이것이 가장 간단합니다 ......!
storyboard의 설정을 재작성하는 것만으로도 되어 버리므로 간편! 진짜 추천!
대책 2
SuperView의 bottom을 전제로 하면, 지금의 구성이라고 하의 바와 view가 급접근해 버리는 것이 싫다고 하는 틈새 수요용!
이 속성을 활성화하면 OK! 같은 편리한 솔루션을 찾을 수 없습니다
SafeArea 이후의 부분의 높이를 취득해, 최하부에 배치하고 있는 UIView를 농락한다고 하는 것도 생각했습니다만, 그것도 조금 싫기 때문에.
화면 최하부의 UIView아래에 같은 배경색의 UIView를 또 하나 배치해, 화면의 맨 아래까지 늘린다……라는 바람으로 하면 다른 단말에서도 영향 없이 대응할 수 있는 것은? 라고 생각했으므로, 이 방법으로 대응해 보려고 생각합니다.
구현
for_iphonex.swiftclass BottomFillView: UIView {
func add(_ baseVC: UIViewController, bottomView: UIView) {
self.backgroundColor = bottomView.backgroundColor
baseVC.view.addSubview(self)
constrain(self, bottomView) { view, bottomView in
view.top == bottomView.bottom
view.trailing == view.superview!.trailing
view.leading == view.superview!.leading
view.bottom == view.superview!.bottom
}
}
}
라는 확장 UIView를 준비해 보았습니다.
yobidashi.swiftoverride func viewDidLoad() {
super.viewDidLoad()
BottomFillView().addX(self, bottomView: bottomView)
}
이런 느낌으로 불러 주면 새롭고, 순백이었던 화면 하단이 같은 색으로 채워지고 있다!
라고, 여기까지 했습니다만… … storyboard만으로 대책할 수 있는 방법이!
대책 3
class BottomFillView: UIView {
func add(_ baseVC: UIViewController, bottomView: UIView) {
self.backgroundColor = bottomView.backgroundColor
baseVC.view.addSubview(self)
constrain(self, bottomView) { view, bottomView in
view.top == bottomView.bottom
view.trailing == view.superview!.trailing
view.leading == view.superview!.leading
view.bottom == view.superview!.bottom
}
}
}
override func viewDidLoad() {
super.viewDidLoad()
BottomFillView().addX(self, bottomView: bottomView)
}
어째서 이런 간단한 것을 깨닫지 못했을 것이다…
사람으로부터 지적을 받을 수 있는 Qiita에게 감사 밖에 없다
감상
개인적으로는 홈 버튼이 있던 쪽이 사용하기 쉬운…
아니 이런 편이 편하지 않아? 같은 지적도 있으면 꼭 꼭
Reference
이 문제에 관하여(iPhone X에서 화면 하단에 View를 고정으로 배치하고 있으면 수수께끼의 여백이 태어났으므로, 노력해 자력으로 채우다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/fumihiko-hidaka/items/5a1428f91f6600618de4
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(iPhone X에서 화면 하단에 View를 고정으로 배치하고 있으면 수수께끼의 여백이 태어났으므로, 노력해 자력으로 채우다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/fumihiko-hidaka/items/5a1428f91f6600618de4텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)