iOS11.0에서 UINaviationBar 높이가 올바르게 표시되지 않는 현상 정보
4734 단어 SwiftXcode9ios11UINavigationBar
개시하다
안녕하세요.
설치로는 안 좋을 수도 있지만 앱 화면을 만들 때
UINaviation Controller처럼 좌우의 과도 관계가 없어도 NavigationBar를 원할 때가 있다
나는 Navigation Item 같은 버튼이 기분이 좋아서 UINaviagation Bar를 만들어 사용했다.
Xcode 9은0에서 Storyboard 또는 코드를 사용하여 UINaviationBar를 생성할 때는 다음과 같습니다.
해결책
이번에 나는 그것을 하기 위해 사용자 정의 반을 만들었다.
Storyboard에 올바르게 표시하는 방법 등은 사용자 정의 레벨을 만들지 않아도 해결하려고 하지만 좀 엄격하다...
CustomNavigationBar.swiftimport UIKit
@IBDesignable class CustomNavigationBar: UINavigationBar {
override func layoutSubviews() {
super.layoutSubviews()
if #available(iOS 11.0, *) {
for subview in self.subviews {
let stringFromClass = NSStringFromClass(subview.classForCoder)
if stringFromClass.contains("BarBackground") {
subview.frame = self.bounds
} else if stringFromClass.contains("BarContentView") {
subview.frame.origin.y = UIApplication.shared.statusBarFrame.height
subview.frame.size.height = self.bounds.height - UIApplication.shared.statusBarFrame.height
}
}
}
}
}
※ @IBDesignable
Storyboard에서 높이가 올바르게 표시됩니다.
그러나 특별히 그릴 것이 없기 때문에 원래의 목적과 다르다는 점에 유의해야 한다.
※ UINaviationBar의 외관 높이를 조절하는 것 같습니다.(UINaviation Bar의subviews를 보여 주려고 했지만 어떤 캐릭터가 어떤 캐릭터인지 자세히 조사하지 못했는데... 미안합니다)UINavigationBar
├── UIBarBackground
├── UINavigationBarLargeTitleView
├── UINavigationBarContentView
└── UINavigationBarModernPromptView
최후
Xcode9.0에서 UINaviationBar의 미세한 변경 사항을 완전히 확인할 수 없습니다.
이번엔 행동하기 위해 잠시 자리를 피했어요...
나중에 다시 확인하고 싶습니다.
참고 자료
이번에 나는 그것을 하기 위해 사용자 정의 반을 만들었다.
Storyboard에 올바르게 표시하는 방법 등은 사용자 정의 레벨을 만들지 않아도 해결하려고 하지만 좀 엄격하다...
CustomNavigationBar.swift
import UIKit
@IBDesignable class CustomNavigationBar: UINavigationBar {
override func layoutSubviews() {
super.layoutSubviews()
if #available(iOS 11.0, *) {
for subview in self.subviews {
let stringFromClass = NSStringFromClass(subview.classForCoder)
if stringFromClass.contains("BarBackground") {
subview.frame = self.bounds
} else if stringFromClass.contains("BarContentView") {
subview.frame.origin.y = UIApplication.shared.statusBarFrame.height
subview.frame.size.height = self.bounds.height - UIApplication.shared.statusBarFrame.height
}
}
}
}
}
※ @IBDesignable
Storyboard에서 높이가 올바르게 표시됩니다.그러나 특별히 그릴 것이 없기 때문에 원래의 목적과 다르다는 점에 유의해야 한다.
※ UINaviationBar의 외관 높이를 조절하는 것 같습니다.(UINaviation Bar의subviews를 보여 주려고 했지만 어떤 캐릭터가 어떤 캐릭터인지 자세히 조사하지 못했는데... 미안합니다)
UINavigationBar
├── UIBarBackground
├── UINavigationBarLargeTitleView
├── UINavigationBarContentView
└── UINavigationBarModernPromptView
최후
Xcode9.0에서 UINaviationBar의 미세한 변경 사항을 완전히 확인할 수 없습니다.
이번엔 행동하기 위해 잠시 자리를 피했어요...
나중에 다시 확인하고 싶습니다.
참고 자료
Reference
이 문제에 관하여(iOS11.0에서 UINaviationBar 높이가 올바르게 표시되지 않는 현상 정보), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/KikurageChan/items/4152c2d8ac89c601a054텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)