gpt4 book ai didi

ios - UIControlState.Selected 的图像没有出现

转载 作者:行者123 更新时间:2023-11-29 02:29:15 25 4
gpt4 key购买 nike

标题说明了一切。这是我的代码:

func createCheckBoxButton(xPos: CGFloat, yPos: CGFloat, tag: Int) -> UIButton {
var checkBox = UIButton(frame: CGRect(x: xPos, y: yPos, width: checkBoxSize, height: checkBoxSize))
checkBox.setBackgroundImage(UIImage(named: "checkbox_inactive"), forState: UIControlState.Normal)
checkBox.setBackgroundImage(UIImage(named: "checkbox_pressed"), forState: UIControlState.Highlighted)
checkBox.setBackgroundImage(UIImage(named: "checkbox_active"), forState: UIControlState.Selected)
checkBox.tag = tag
checkBox.contentMode = .ScaleAspectFit
checkBox.addTarget(self, action: "processButton:", forControlEvents: UIControlEvents.TouchUpInside)
return checkBox
}

按下按钮时调用的函数:

func processButton(sender: UIButton) {
if (answerViewArray[sender.tag].backgroundColor == UIColor.whiteColor()) {
answerViewArray[sender.tag].backgroundColor = myColor.pinky()
} else {
answerViewArray[sender.tag].backgroundColor = UIColor.whiteColor()
}
let tag = answerButtonsArray[sender.tag]
answer.buttonPressed(tag)
}

当我启动应用程序时,checkbox_inactive 图像就在那里。当我按下并保持按下时,checkbox_pressed 图像出现。但是当我释放我的点击时,checkbox_inactive 再次出现而不是 checkbox_active

我还尝试了 UIImageView,这实际上对我来说是最好的解决方案。我将我的复选框设置为 UIImageView 并在我的一般 View 的顶部放置了一个不可见的 View ,这样我就可以在任何地方点击。但是当我按下不可见 View 时,UIImageView 就消失了。

代码如下:

func createCheckBoxButton(xPos: CGFloat, yPos: CGFloat) -> UIImageView {
var checkBox = UIImageView(frame: CGRect(x: xPos, y: yPos, width: checkBoxSize, height: checkBoxSize))
checkBox.image = UIImage(named: "checkbox_inactive")
checkBox.contentMode = .ScaleAspectFit
return checkBox
}

这里是调用的函数:

func processButton(sender: UIButton) {
if (answerViewArray[sender.tag].backgroundColor == UIColor.whiteColor()) {
answerViewArray[sender.tag].backgroundColor = myColor.pinky()
checkBoxArray[sender.tag].image = UIImage(named: "checkbox-active")
} else {
answerViewArray[sender.tag].backgroundColor = UIColor.whiteColor()
checkBoxArray[sender.tag].image = UIImage(named: "checkbox-inactive")
}

let tag = answerButtonsArray[sender.tag]

answer.buttonPressed(tag)
}

最佳答案

要在您释放按钮时显示 checkbox_active,您应该为按下的按钮设置 selected=true。

所以你的函数应该是这样的:

func processButton(sender: UIButton) {
// If button not selected
if(sender.selected==false){
sender.selected = true;
}
else{ // If button already selected
sender.selected = false;
}

// Do your other stuff
}

关于ios - UIControlState.Selected 的图像没有出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27124641/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com