【发布时间】:2018-09-05 02:24:14
【问题描述】:
应用从 API 产品选项加载,例如电子商务应用的颜色和大小。现在,我有点卡在代码中了。
如果选择了一个按钮,让我们说出它的颜色,则应取消选择另一个按钮,因为一次只能有一种颜色。请看下面的代码。下面的代码是点击按钮时的目标动作。
func imgSelected(_ sender: RadioButton) {
guard let currentButton = sender as? UIButton else { return }
if ((currentButton.isSelected) != nil){
currentButton.isSelected = true
var dict = JSON(self.catalogProductViewModel.getOption[(sender.superview?.tag)!]);
let productOptionArray : JSON = JSON(dict["product_option_value"].arrayObject!)
imageId[(sender.superview?.tag)!] = productOptionArray[sender.tag]["product_option_value_id"].stringValue
currentButton.layer.borderWidth = 3.0
currentButton.layer.borderColor = UIColor.red.cgColor
print("Button Not Clicked \((sender as? RadioButton)?.tag)")
} else {
currentButton.layer.borderWidth = 0
currentButton.layer.borderColor = UIColor.clear.cgColor
print("Button Removed \((sender as? RadioButton)?.tag)")
}
}
但我可以看到所有选项都是可选的我在论坛中尝试了所有可能的示例,但未与我合作。我在将产品选项投射到购物车时面临的另一个问题是返回选项标题而不是选定的值,例如它投射到“颜色”而不是“红色”。
else if dict["type"].stringValue == "image" {
if dict["required"].intValue == 1{
if imageId[i] == ""{
isValid = 1;
errorMessage = errorMessage+dict["name"].stringValue
print("Error Message", errorMessage)
}else{
optionDictionary[dict["product_option_id"].stringValue] = imageId[i] as AnyObject
print("Else is Valid 0", optionDictionary[dict["product_option_id"].stringValue] )
}
}else{
optionDictionary[dict["product_option_id"].stringValue] = imageId[i] as AnyObject
print("Stand Alone", optionDictionary[dict["product_option_id"].stringValue])
}
}
【问题讨论】:
标签: ios swift uibutton selected selectedvalue