【问题标题】:Cannot get this checkbox to build?无法构建此复选框?
【发布时间】:2017-07-26 11:08:50
【问题描述】:

我尝试修复其他错误,所以它可能看起来有点不同,但这是我能做的最好的。

override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning()
    Box49.setImage(#imageLiteral(resourceName: "UnCheckBox"), for: .normal)
    Box49.setImage(#imageLiteral(resourceName: "CheckBox"), for: .selected)

    Box50.setImage(#imageLiteral(resourceName: "UnCheckBox"), for: .normal)
    Box50.setImage(#imageLiteral(resourceName: "CheckBox"), for: .selected)

    Box51.setImage(#imageLiteral(resourceName: "UnCheckBox"), for: .normal)
    Box51.setImage(#imageLiteral(resourceName: "CheckBox"), for: .selected)

}

@IBAction func Box49(_ sender: UIButton) {
    sender.isSelected = !(sender as AnyObject).isSelected
}


@IBAction func Box50(_ sender: UIButton) {
    sender.isSelected = !(sender as AnyObject).isSelected
}


@IBAction func Box51(_ sender: UIButton) {
    sender.isSelected = !(sender as AnyObject).isSelected
    }

【问题讨论】:

  • 您需要提供更多信息。它是如何接线的,(仔细检查一下接线,可能是你那里还有一些旧电线)。我们也看不到错误。所以你的问题太模糊了。

标签: ios swift checkbox


【解决方案1】:

首先,您需要创建 3 个按钮插座,因为您当前正在将图像设置为按钮操作,因此要么在界面构建器中设置选定图像和普通图像,要么像下面这样创建 3 个按钮插座。

@IBOutlet var box49: UIButton!
@IBOutlet var box50: UIButton!
@IBOutlet var box51: UIButton!

现在在 viewDidLoad 或 viewDidAppear 中将图像设置为 Button 而不是在 didReceiveMemoryWarning 中,也无需将 sender 转换为 AnyObject 即可访问 isSelected 属性,因为 sender 类型为 UIButton,因此您可以直接访问isSelected属性。

var BoxOFF = #imageLiteral(resourceName: "UnCheckBox")
var BoxON = #imageLiteral(resourceName: "CheckBox") 
override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)
     box49.setImage(BoxOFF, for: .normal)
     box49.setImage(BoxON, for: .selected)

     box50.setImage(BoxOFF, for: .normal)
     box50.setImage(BoxON, for: .selected)

     box51.setImage(BoxOFF, for: .normal)
     box51.setImage(BoxON, for: .selected)
} 

现在以这种方式设置您的按钮操作。

@IBAction func Box49(_ sender: Button) {
     sender.isSelected = !sender.isSelected
}

@IBAction func Box50(_ sender: Button) {
     sender.isSelected = !sender.isSelected
}

@IBAction func Box51(_ sender: Button) {
     sender.isSelected = !sender.isSelected
}

【讨论】:

  • 错误:'(UIButton) -> ()' 类型的值没有成员 'setImage'
  • @DanielG 添加按钮 Box49、Box50 和 Box51 的声明?
  • 究竟如何?对不起,我是新人
  • @DanielG 显示您的 3 个按钮的声明代码。
  • 我发布的是我在 Xcode 中写入的所有内容。我不确定你所说的表演是什么意思
【解决方案2】:
override func didReceiveMemoryWarning()
 {
    super.didReceiveMemoryWarning()
 }

当内存不足,需要释放任何资源时调用上述方法。

所以你需要将上述方法中的代码添加到viewDidAppearviewWillAppear中。

所以替换代码如下:

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)
     Box49.setImage(#imageLiteral(resourceName: "UnCheckBox"), for: .normal)
    Box49.setImage(#imageLiteral(resourceName: "CheckBox"), for: .selected)

    Box50.setImage(#imageLiteral(resourceName: "UnCheckBox"), for: .normal)
    Box50.setImage(#imageLiteral(resourceName: "CheckBox"), for: .selected)

    Box51.setImage(#imageLiteral(resourceName: "UnCheckBox"), for: .normal)
    Box51.setImage(#imageLiteral(resourceName: "CheckBox"), for: .selected)

} 

另一个改进是替换您的代码

sender.isSelected = !(sender as AnyObject).isSelected

sender.isSelected = !sender.isSelected

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-07
    • 1970-01-01
    • 2014-03-03
    • 2015-11-11
    • 1970-01-01
    • 2013-07-20
    • 2013-05-23
    • 1970-01-01
    相关资源
    最近更新 更多