我不是一个非常有经验的编码器,所以我很难弄清楚它是否可能,如果是这样的话,如何检查标签中找到的字符串是否符合给定的字符串值。
当Radius标签显示“Radius in feet”以及我的消息文本字段不为空时,我希望启用“添加”按钮。
到目前为止,我有:
@IBAction func textFieldEditingChanged(sender: UITextField) {
addButton.enabled = !radiuslabel.text == "Radius in feet" && !messageTextField.text.isEmpty
}
此代码错误,我无法找到答案。 Radius标签从滑块获得信息。 这是滑块功能的代码:
@IBAction func sliderValueChanged(sender: UISlider) {
var currentValue = Int(sender.value)
radiusLabel.text = "\(currentValue)"
}
还有另一种方法可以将Radius作为整数保留在Label的一部分吗?
答案 0 :(得分:0)
您不希望在radiusLabel.text前面使用逻辑NOT(!
)运算符。你想要使用"不等于" operator(!=
)。
此外,您应该在第二次出现时使用UILabel
成员text
上的可选链接(当您访问成员isEmpty
时)。这里比较假,因为它是可选的。
addButton.enabled = radiuslabel.text != "Radius in feet" && messageTextField.text?.isEmpty == false
sender
应保留UILabel
答案 1 :(得分:0)
我们假设您的滑块的值介于1 to 10
和2
之间,代表Feet
因此根据您的代码,您在滑块值更改时将值设置为radiusLabel
@IBAction func sliderValueChanged(sender: UISlider) {
var currentValue = Int(sender.value)
radiusLabel.text = "\(currentValue)"
}
AND 更改邮件标签中的值
@IBAction func textFieldEditingChanged(sender: UITextField) {
addButton.enabled = !radiuslabel.text == "Radius in feet" && !messageTextField.text.isEmpty
}
当messageTextField
的值更改
只要滑块值设置为英尺或messageLabel有一些值,您想要启用按钮。你需要做的是
func shouldEnableButton()
{
//Assuming value 2 means value in feet
addButton.enabled = radiuslabel.text != "2" && (messageTextField.text != nil && !messageTextField.text!.isEmpty)
}
@IBAction func sliderValueChanged(sender: UISlider) {
var currentValue = Int(sender.value)
radiusLabel.text = "\(currentValue)"
messageLbl.text = nil
self.shouldEnableButton()
}
@IBAction func textFieldEditingChanged(sender: UITextField) {
self.shouldEnableButton()
}
答案 2 :(得分:-1)
尝试以下代码行:
@IBAction func textFieldEditingChanged(sender: UITextField) {
addButton.enabled = (!(radiuslabel.text == "Radius in feet") && !messageTextField.text.isEmpty)
}
希望它能帮到你......