【发布时间】:2018-12-12 14:56:13
【问题描述】:
我正在创建一个带有导航栏的 ViewController。在此栏中,我添加了一个 UIBarButton,我将在其上附加一个 segue 以转到另一个 ViewController。 我希望这个按钮是一个图像而不是简单的文本,所以我尝试进入 Attributes Inspector 部分并为我的按钮添加一个图像。结果很糟糕:
此时您可能会想,我想要一个正确的图像(比如小一点,我的在 xcassets 下,高度和宽度为 25 像素)。
通过使用这个,我设法以编程方式获得了更好的东西:
hpSettingsBtn.image = UIImage(named: "settings")
但仍然不是我想要的。
有什么想法吗?
我也尝试了使用自定义视图的功能,但我的按钮不再可点击。
class HomePageViewController: UIViewController {
@IBOutlet weak var hpSettingsBtn: UIBarButtonItem!
override func viewDidLoad() {
super.viewDidLoad()
let button = createSettingsBtn()
hpSettingsBtn.customView = button
}
func createSettingsBtn() -> UIButton {
//create a new button
let button = UIButton(type: .custom)
//set image for button
button.setImage(UIImage(named: "settings"), for: .normal)
//set frame
button.frame = CGRect(x: 0, y: 0, width: 25, height: 25)
button.widthAnchor.constraint(equalToConstant: 25).isActive = true
button.heightAnchor.constraint(equalToConstant: 25).isActive = true
return button
}
如果我使用这段代码,没有 UIBarButton(通过在我的代码中创建它并将它自己附加到导航栏),那么我不知道是否可以使用 segue(因为按钮没有出现在故事板上)。
【问题讨论】:
-
我会为其父控制器中的按钮创建一个插座。当该控制器确实加载时,您可以调用 self.button.setImage(_:, _:)
标签: ios swift uibarbuttonitem