如何创建仅切换一次的切换按钮

时间:2018-08-01 17:32:32

标签: swift uitableview uibutton

我想创建一个按钮,当按下该按钮时,它会切换为其他格式并保持这种状态,不允许用户将其切换回去。例如,我试图创建一个显示“ Special 1”的按钮,然后当用户单击该按钮时,它将切换为“ USED”。当UIButton上弹出“ USED”字样时,它会保持这种状态,并且用户无法将其改回原样。请帮我,我不知道这个。除了UIButton之外,我还愿意执行其他想法,例如UITableView ??

2 个答案:

答案 0 :(得分:0)

您可以做的是在ViewController中创建一个布尔值(真或假),每当轻按按钮时,都要设置此变量,以便可以操纵与按钮关联的点击功能。

1。)建立从ViewController到代码的动作连接,这可以通过单击双视图按钮(右上角的两个圆圈)然后按住控件并将按钮拖动到代码中来完成。 :

有关将视图连接到代码的更多信息:https://codewithchris.com/9-hooking-it-all-up-swift-iboutlet-properties/ 跳到6分钟进行实际连接。

enter image description here

2。)现在,我们可以创建布尔变量,并创建基本的if语句:

var didClick:Bool = false


@IBAction func touchButton(_ sender: UIButton) {

    if !didClick { // If didClick is false
        didClick = true // Set it to true
        sender.setTitle("USED", for: .normal)
    }

}

注意:发件人应设置为UIButton NOT Any

应如下所示: _ sender: UIButton

答案 1 :(得分:0)

如果您使用的是故事板,则可以在IBAction函数中编写此故事板:

function countOnes(n) {
    let count = 0
    while(n > 0) {
        n -= n ^ (n & (n -1))
        count++
    }
    return count
}

let n = 1709891;
console.log(countOnes(n))
console.log(n.toString(2))

n = 7
console.log(countOnes(n))
console.log(n.toString(2))

n = 9
console.log(countOnes(n))
console.log(n.toString(2))

发件人的类型可以是UIButton或“任意”,这取决于您如何从情节提要中建立连接。