【发布时间】:2019-12-23 19:51:34
【问题描述】:
【问题讨论】:
-
你好@Zac,我也面临同样的问题。你找到解决办法了吗?
-
很遗憾没有@Zept
标签: ios swift uinavigationbar
【问题讨论】:
标签: ios swift uinavigationbar
也许有更正确和最优的解决方案,但它适合我。 不要被语法吓到,我用SnapKit
lazy private var settingsButton = UIButton().then {
$0.setImage(Image.settings, for: .normal)
}
viewDidAppear(_ animated: Bool)
navigationController?.navigationBar.subviews.forEach { subview in
let stringFromClass = NSStringFromClass(subview.classForCoder)
guard stringFromClass.contains("UINavigationBarLargeTitleView") else { return }
subview.subviews.forEach { label in
guard label is UILabel else { return }
subview.addSubview(settingsButton)
settingsButton.snp.makeConstraints{
$0.top.equalTo(label)
$0.right.equalToSuperview().offset(-14)
$0.height.width.equalTo(35)
}
}
}
UIScrollViewDelegate 并在scrollViewDidScroll 方法中领先于navigationBar 状态,然后隐藏/显示UIBarButtonItem
【讨论】: