我有一些按钮,按下时会在标签中打印一些文本。我在文本前面还有一个计数器,用于显示相应按钮被按下的次数。但是如果某些按钮没有被按下,它会在标签中显示 0。是否可以将 int 上的初始值转换为空格? 我试过这样的事情:
var addCount:int = 0
var blankSpace = ""
if addCount == 0 {
addcount = blankSpace
}
else {
....
}
我也试过:
if addCount == 0 {
addCount = String (blankSpace)
}
else {
}
我试过:
if addCount == 0 {
addCount = String ("")
}
我可能做错了这件事,我将不胜感激。
*
*
*
编辑:我认为 swift 中有一些魔术可以让 0 消失,所以当我问我的问题时我采取了一些捷径。这是整个设置:
我在 View Controller 1 中有四个按钮,它们打印一些文本并将 1 添加到计数器。数据基于 Swift 文件 allSum。
显示文本和计数器的标签在 View Controller 2 中。
总和:
import UIKit
class allSum: NSObject {
var btn1Pressed:String = ""
var addToBtn1:Int = 0
var btn2Pressed:String = ""
var addToBtn2:Int = 0
var btn3Pressed:String = ""
var addToBtn3:Int = 0
var btn4Pressed:String = ""
var addToBtn4:Int = 0
func printToLabel() -> String{ //return a string with the current status
return ("\(addToBtn1) \(btn1Pressed + "")") + ("\(addToBtn2) \(btn2Pressed + "")") + ("\(addToBtn3) \(btn3Pressed + "")") + ("\(addToBtn4) \(btn4Pressed + "")")
}
View Controller 1
var total = allSum
var button1 = "Button 1 Pressed\n"
var button2 = "Button 2 Pressed\n"
var button3 = "Button 3 Pressed\n"
var button4 = "Button 4 Pressed\n"
@IBAction func no1(_ sender: UIButton) {
total.btn1Pressed = button1
toal.addToBtn1 += 1
}
@IBAction func no2(_ sender: UIButton) {
total.btn2Pressed = button2
toal.addToBtn2 += 1
}
@IBAction func no3(_ sender: UIButton) {
total.btn3Pressed = button3
toal.addToBtn3 += 1
}
@IBAction func no4(_ sender: UIButton) {
total.btn4Pressed = button4
toal.addToBtn4 += 1
}
View Controller 2
var total = allSum?
label.text = total.printToLabel()
使用此设置,当没有按下任何按钮时,标签将显示 0 0 0 0。
所以,我的问题是我无法设置 label.text = ""
,因为我还打印了其他变量。
原谅我当初的懒惰
最佳答案
将实际标签文本设置为空格。
var addCount:Int = 0
var blankSpace = ""
if addCount == 0 {
yourlabel.text = blankSpace
} else {
yourlabel.text = "\(addCount)"
}
更新: 这是一种用更少的代码编写当前代码并解决将 0 更改为空白字符串的问题的方法
总和
class AllSum {
var sumsArray: [Int] = [0,0,0,0]
func stringForLabel() -> String { //return a string with the current status
var string = ""
for (index, value) in self.sumsArray.enumerated() {
if value > 0 {
string = string + "\(value) Button \(index + 1) was pressed\n"
}
}
return string
}
}
View Controller 1
您可以在 UIBuilder 中使用标签来匹配数组中的索引。将所有按钮链接到相同的功能
var total = AllSum()
@IBAction func numberPressed(_ sender: UIButton) {
total.sumsArray[sender.tag] = sumsArray[sender.tag] + 1
}
View Controller 2
var total = AllSum()
label.text = total.stringForLabel()
关于ios - 如何不在标签中显示 0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45765593/