owl*_*ipe 6 xcode uibarbuttonitem ios uibarbuttonsystemitem swift
我有一个条形按钮项设置为我的图像资产文件夹中的自定义图像。启动后,一旦用户按下按钮,我希望它更改为系统项 — 停止 ( X
) 按钮。我知道如何以编程方式更改条形按钮的图像,但是如何将图像更改为代码中的系统项之一?
Swift 3,Xcode 8 测试版 1。
如何将我的按钮图像从我的代码更改为这些系统项之一?
您需要做的是有两个按钮(您可以通过编程方式或在界面生成器中设置它们),一个带有图像,另一个带有停止行为。当按下其中一个时,切换两者的可见性。
我相信最好的选择是以编程方式完成,所以方法如下:
添加两个栏按钮项目作为类成员:
private var itemOn: UIBarButtonItem!
private var itemOff: UIBarButtonItem!
Run Code Online (Sandbox Code Playgroud)
然后根据viewDidLoad
需要设置值(一个具有图像,另一个具有“X”的正常行为)。然后将itemOn
按钮添加到导航栏:
self.navigationItem.rightBarButtonItem = itemOn
Run Code Online (Sandbox Code Playgroud)
请注意,两者应该具有相同的操作:
self.itemOn.target = self
self.itemOn.action = Selector("toggleVisibleButton:")
self.itemOff.target = self
self.itemOff.action = Selector("toggleVisibleButton:")
Run Code Online (Sandbox Code Playgroud)
然后实现toggleVisibleButton函数:
func toggleVisibleButton(sender: UIBarButtonItem) {
if self.navigationItem.rightBarButtonItem == itemOn {
self.navigationItem.rightBarButtonItem = itemOff
// Do something with the button that has the image
} else {
self.navigationItem.rightBarButtonItem = itemOn
// Do something with the button that has the X
}
}
Run Code Online (Sandbox Code Playgroud)
Swift 3 更新:
像这样设置动作:
self.itemOn.action = #selector(self.toggleVisibleButton(sender:))
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5848 次 |
最近记录: |