为什么我的导航和正常按钮文本和图像不可见,但可操作,当我在iphone上构建应用程序,以及当我在模拟器上构建应用程序后检查应用程序?
这是我如何添加按钮到导航栏:
@objc func moreNavigationButton() -> UIBarButtonItem {
let barButton:UIButton = UIButton.init(type: .custom)
barButton.addTarget(self, action:#selector(moreNavigationButtonClicked), for: .touchUpInside)
barButton.frame = CGRect(x: 0, y: 0, width: 30, height: 30)
barButton.setImage(UIImage(named: "ic_more"), for: .normal)
barButton.imageView?.contentMode = .scaleAspectFit
let barButtonItem:UIBarButtonItem = UIBarButtonItem.init(customView: barButton)
barButtonItem.width = 30
return barButtonItem
}
在viewWillAppear()函数中,我像下面这样调用上述方法:
self.navigationItem.rightBarButtonItems = [self.moreNavigationButton()]
现在我们有不同的按钮设置在我这边我通常这样做
navigationItem.leftBarButtonItem = UIBarButtonItem(barButtonSystemItem: .add, target: self, action: #selector(addTapped))
navigationItem.rightBarButtonItem = UIBarButtonItem(title: "Add", style: .plain, target: self, action: #selector(addTapped))
然后我设置2 barButtonItem
let add = UIBarButtonItem(barButtonSystemItem: .add, target: self, action: #selector(addTapped))
let play = UIBarButtonItem(title: "Play", style: .plain, target: self, action: #selector(playTapped))
这里我有他们的导航项navigationItem。rightBarButtonItems = [add, play]
我想你应该设置Bar button item而不是button。
感谢Paul Hudson的内容,它总是很有帮助
如果有帮助请告诉我
大家早上好,今天早上我创建了一个新的项目,系统是创建你自己的navigationBar和barButton。请随意下载fork,做一些pull request或其他操作。
https://github.com/Gioovannii/Navigation-bar/tree/main
下面的扩展导致这个问题。现在我注释了它,它就解决了。
extension UIButton {
open override func layoutSubviews() {
super.layoutSubviews()
if imageView != nil {
imageEdgeInsets = UIEdgeInsets(top: 5, left: (bounds.width - 5), bottom: 5, right: 5)
titleEdgeInsets = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: (imageView?.frame.width)!)
}
}
}