ios - 如何不在标签中显示 0?

标签 ios swift

我有一些按钮,按下时会在标签中打印一些文本。我在文本前面还有一个计数器,用于显示相应按钮被按下的次数。但是如果某些按钮没有被按下,它会在标签中显示 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/

相关文章:

ios - SpriteKit,把一个进程放在另一个核心上?

iOS 如何从 URL 检索和存储数据?

ios - Yelp API ios 获取更大的图像

ios - 如何从 swift singleton init 抛出错误/异常

macos - 使用数组填充 NSTableView - 绑定(bind)表

ios - 删除 HTML 关键字或标签并在 Swift 3 中转换为普通可读字符串

iphone - 在 Xcode 中重命名事件处理程序的最简单方法是什么?

ios - 点击时 SwiftUI 按钮不灰显

ios - Collection View 单元格中的多行标签在重用后中断

swift - 为什么函数参数在 Swift 中是不可变的?