gpt4 book ai didi

ios - 在 Swift 中按下 uibutton 时更改色调图像颜色

转载 作者:搜寻专家 更新时间:2023-11-01 05:53:44 25 4
gpt4 key购买 nike

我在 View 中有一个 ScrollView 。在 ScrollView 中,我以编程方式创建了 5 个按钮。每个按钮加载不同的图像,每个图像都有不同的标签。我添加了一个在按下按钮时调用的函数。

let avatarsListScrollingView = avatarsListView(CGSizeMake(70.0, 55.0), avatarCount: 5)


func avatarsListView(buttonSize:CGSize, avatarCount:Int) -> UIView {

**CODE**

for i in 0...(avatarCount-1) {
let button = UIButton(type: .Custom)

**CODE**

button.setImage(UIImage(named: avatarsList[i]), forState: .Normal)

button.tag = i
button.addTarget(self, action: "avatarListSelected:", forControlEvents: .TouchUpInside)

avatarButtonView.addSubview(button)
}
return avatarButtonView

}

然后当按下按钮时,我调用“avatarListSelected”:

func avatarListSelected(sender:UIButton){

if let image = sender.imageView?.image?.imageWithRenderingMode(.AlwaysTemplate) {
sender.setImage(image, forState: .Normal)
sender.tintColor = UIColor.redColor()
}
self.addAvatarView.reloadInputViews()
}

此函数将图像按钮着色为红色,工作正常,但问题是当我按下其他按钮时,我希望其他按钮变为原始颜色。现在我按下的每个按钮都会变成红色。

我尝试添加对“self.addAvatarView.reloadInputViews()”的调用以尝试再次“重绘”所有按钮,但从未被调用。

你们知道一些方法吗?

最佳答案

谢谢大家!这是解决问题的最终代码:

func avatarListSelected(sender:UIButton){
print(sender.tag)

if let image = sender.imageView?.image?.imageWithRenderingMode(.AlwaysTemplate) {
sender.setImage(image, forState: .Normal)
sender.tintColor = UIColor.redColor()
}

for view in self.avatarButtonView.subviews as [UIView] {
if let btn = view as? UIButton {
if btn.tag != sender.tag {
btn.setImage(UIImage(named: avatarsList[btn.tag]), forState: .Normal)
}
}
}
}

关于ios - 在 Swift 中按下 uibutton 时更改色调图像颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34800246/

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