【发布时间】:2018-03-28 09:25:47
【问题描述】:
我正在开发一个应用程序,它可以让我为 Arduino Uno 中的某些 LED 选择不同的颜色。现在,我有点卡在代码中。
如果选择了一个按钮,即一种颜色,则应取消选择另一个按钮,因为一次只能有一种颜色。请看下面的代码。下面的代码是一个所有按钮都有连接的子类。
import UIKit
class ToggleTheButtons: UIButton {
// Buttons are all off on load.
var isOn = false
override init(frame: CGRect) {
super.init(frame: frame)
initButton()
}
required init?(coder aDecoder: NSCoder){
super.init(coder:aDecoder)
initButton()
}
func initButton(){
// Initializes the button.
layer.borderWidth = 0.0
addTarget(self, action: #selector(ToggleTheButtons.buttonPressed), for: .touchUpInside)
}
// What happens when we press the buttons.
@objc func buttonPressed() {
activateButton(bool: !isOn)
}
// Toggles button on and off.
func activateButton(bool: Bool) {
isOn = bool
// Ternary operator. true:false (Boolean is nodig)
_ = bool ? (layer.borderWidth = 2.0) : (layer.borderWidth = 0.0)
// layer.borderColor = (borderColorOfTheButton as! CGColor)
}
}
由于我仍在研究我的技能,您可能会在这里找到一些奇怪的代码。请就您发现的错误给我任何反馈。
我期待着阅读您的回复。
编辑:我已经通过 IBActions 链接了我的 UIButtons,截图如下。
您将在下面找到 licht.swift 的代码。这里的按钮是链接的。
import UIKit
class Licht: UIViewController {
// Link alle knoppen met de code. Check ToggleTheButtons.swift voor de toggle functies. Misschien een IBAction.
// @IBOutlet weak var redButton: ToggleTheButtons!
@IBAction func redButton(_ sender: ToggleTheButtons) {
}
@IBAction func orangeButton(_ sender: ToggleTheButtons) {
}
@IBAction func yellowButton(_ sender: ToggleTheButtons) {
}
@IBAction func greenButton(_ sender: ToggleTheButtons) {
}
@IBAction func lightBlueButton(_ sender: ToggleTheButtons) {
}
@IBAction func darkBlueButton(_ sender: ToggleTheButtons) {
}
@IBAction func purpleButton(_ sender: ToggleTheButtons) {
}
@IBAction func pinkButton(_ sender: ToggleTheButtons) {
}
@IBAction func whiteButton(_ sender: ToggleTheButtons) {
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
func databaseConnection() {
// Hier komt de connectie met de database.
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
此致,
弗兰克。
【问题讨论】:
-
如何将此类分配给 UIButton?来自故事板或代码?
-
@JD。我已经在上面添加了答案。
-
可能你可以使用单选按钮的逻辑。如果我没有错,你需要完全一样的逻辑。如果你想要我实现单选按钮的逻辑。请询问。