Эффект, который я хочу достичь, это:Удаление волосяного покрова под навигационной панели
И текущее состояние моего приложения является:
Это настроенный моего контроллера. Я помещал панель инструментов под панель навигации. Затем я установил делегат панели инструментов на панель навигации. Я прочитал несколько сообщений об этом. Одним из предложенных решений было:
navigationController?.navigationBar.shadowImage = UIImage();
navigationController?.navigationBar.setBackgroundImage(UIImage(), forBarMetrics: .Default)
Однако это приводит к тому, что навигационная панель становится белой и теряет эффект. Таким образом, я получил следующий код из этого поста (UISegmentedControl below UINavigationbar in iOS 7):
@IBOutlet weak var toolbar: UIToolbar!
var hairLine: UIView = UIView()
override func viewDidLoad() {
super.viewDidLoad()
doneButton.enabled = false
for parent in self.navigationController!.navigationBar.subviews {
for childView in parent.subviews {
if childView is UIImageView && childView.bounds.size.width == self.navigationController!.navigationBar.frame.size.width {
hairLine = childView
print(hairLine.frame)
}
}
}
}
func removeHairLine(appearing: Bool) {
var hairLineFrame = hairLine.frame
if appearing {
hairLineFrame.origin.y += toolbar.bounds.size.height
} else {
hairLineFrame.origin.y -= toolbar.bounds.size.height
}
hairLine.frame = hairLineFrame
print(hairLine.frame)
}
override func viewWillAppear(animated: Bool) {
removeHairLine(true)
}
override func viewWillDisappear(animated: Bool) {
removeHairLine(true)
}
Однако этот код удаляет сверхтонкий перед вид полностью загружен, но когда вид загружен, он появляется снова. Любые решения?
Вы нашли решение для этого? – SandeepAggarwal