Ios Swift-UIToolbar项目选定状态
我的导航控制器中有此工具栏。现在我要做的是,当用户在我的工具栏中选择一个项目(Ios Swift-UIToolbar项目选定状态,ios,swift,uitoolbar,Ios,Swift,Uitoolbar,我的导航控制器中有此工具栏。现在我要做的是,当用户在我的工具栏中选择一个项目(UIBarButtonItem)时,用背景色高亮显示该项目,直到用户取消选择该项目或选择另一个项目。我该怎么做 以下是我对工具栏每个项目的选择器方法,我通过故事板将它们连接起来: @IBAction func addText(sender: AnyObject) { annotationSelected = 3 } @IBAction func drawCircle(sender: AnyObject
UIBarButtonItem
)时,用背景色高亮显示该项目,直到用户取消选择该项目或选择另一个项目。我该怎么做
以下是我对工具栏每个项目的选择器方法,我通过故事板将它们连接起来:
@IBAction func addText(sender: AnyObject) {
annotationSelected = 3
}
@IBAction func drawCircle(sender: AnyObject) {
annotationSelected = 1
}
@IBAction func drawRectangle(sender: AnyObject) {
annotationSelected = 2
}
@IBAction func drawStamp(sender: AnyObject) {
annotationSelected = 4
}
这就是我所做的一切。以下是我的工具栏的屏幕截图:
以下是我得到的:
@IBOutlet var textToolButton: UIBarButtonItem!
@IBOutlet var circleToolButton: UIBarButtonItem!
@IBOutlet var rectangleToolButton: UIBarButtonItem!
@IBOutlet var stampToolButton: UIBarButtonItem!
然后
然后是方法
func barButtonPressed(sender: UIBarButtonItem) {
print(sender)
annotationSelected = sender.tag
}
背景仍然没有改变颜色最干净的方法是创建一个整体功能,在其中传递已选择的按钮。大概是这样的:
var allButtons = [button1, button2, button3, button4]
func resetTabBar (buttonSelected:UIButton) {
for button in allButtons {
if button == buttonSelected {
button.backgroundColor = "Black"
}
else {
button.backgroundColor = "Blue"
}
}
}
然后在您创建的函数中,只需按如下方式传入发件人:
@IBAction func addText(sender: AnyObject) {
resetTabBar(sender)
}
注意:这是假设您的所有按钮都有插座。如果没有,请添加它们 最干净的方法是创建一个整体函数,在该函数中输入已选择的按钮。大概是这样的:
var allButtons = [button1, button2, button3, button4]
func resetTabBar (buttonSelected:UIButton) {
for button in allButtons {
if button == buttonSelected {
button.backgroundColor = "Black"
}
else {
button.backgroundColor = "Blue"
}
}
}
然后在您创建的函数中,只需按如下方式传入发件人:
@IBAction func addText(sender: AnyObject) {
resetTabBar(sender)
}
注意:这是假设您的所有按钮都有插座。如果没有,请添加它们 我发现了一个相同的问题。也许我能帮你。 我找到了一个简单的方法。你可以拖动一个按钮到工具栏上,你会看到这样的画面 你应该改变按钮的类型和图像。 然后应该将该按钮链接到viewController
@IBOutlet weak var textToolButton: UIButton!
你能做到
let selectedBackgroundColor = UIImage(color: .redColor())
textToolButton.setBackgroundImage(selectedBackgroundColor, forState: .Highlighted)
也许我能帮你。我发现一个同样的问题。也许我能帮你。 我找到了一个简单的方法。你可以拖动一个按钮到工具栏上,你会看到这样的画面 你应该改变按钮的类型和图像。 然后应该将该按钮链接到viewController
@IBOutlet weak var textToolButton: UIButton!
你能做到
let selectedBackgroundColor = UIImage(color: .redColor())
textToolButton.setBackgroundImage(selectedBackgroundColor, forState: .Highlighted)
可能我可以帮你。这对UIBarButtonItem不起作用,没有背景色用例和代码可以工作,用户可以根据需要修改代码。这对UIBarButtonItem不起作用,没有背景色用例和代码可以工作,用户可以随意修改代码。我无法上传图像。因为我没有10个名声。这是给UIButtons而不是UIBarbuttonite的。对不起,我不能表达我的想法。UIBarButtonItem*barButtonItem=[[UIBarButtonItem alloc]initWithCustomView:customButton];所以我们可以更改customButton以实现此目标。我无法上载图像。因为我没有10个名声。这是给UIButtons而不是UIBarbuttonite的。对不起,我不能表达我的想法。UIBarButtonItem*barButtonItem=[[UIBarButtonItem alloc]initWithCustomView:customButton];因此,我们可以更改customButton以实现此目标。