Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 在UILabel中的新行上添加文本_Swift - Fatal编程技术网

Swift 在UILabel中的新行上添加文本

Swift 在UILabel中的新行上添加文本,swift,Swift,我正在尝试将文本添加到UILabel的新行,现在它将替换当前文本 如何将文本附加到ui标签 如何将新行添加到ui标签 你发布的代码有很多问题 首先,明确代码。我们应该能够复制代码,将其粘贴到例如操场中,并且应该可以工作。有时这是不可能的,但在你的情况下是这样的 代码的问题: 打开你的眼镜,每一次你都不知道一只独角兽死了 不能直接从Swift字符串转换为Int 此方法将字符串转换为Int,不会产生可选值 // elaborate for extra clarity let forUsTe

我正在尝试将文本添加到
UILabel
的新行,现在它将替换当前文本

  • 如何将文本附加到
    ui标签
  • 如何将新行添加到
    ui标签


你发布的代码有很多问题

首先,明确代码。我们应该能够复制代码,将其粘贴到例如操场中,并且应该可以工作。有时这是不可能的,但在你的情况下是这样的

代码的问题:

  • 打开你的眼镜,每一次你都不知道一只独角兽死了
  • 不能直接从Swift
    字符串转换为
    Int
此方法将
字符串
转换为
Int
,不会产生可选值

// elaborate for extra clarity
let forUsTextNSString = forUsText as NSString
let forUSTextFloat = forUsTextNSString.floatValue
input1 = Int(forUSTextFloat)
这是更新的代码,它现在编译:

// stuff I used to test this
var forUs = UILabel(frame: CGRect(x: 0, y: 0, width: 100, height: 100))
var forThem = UILabel(frame: CGRect(x: 0, y: 0, width: 100, height: 100))

var us = UILabel(frame: CGRect(x: 0, y: 0, width: 100, height: 100))
var them = UILabel(frame: CGRect(x: 0, y: 0, width: 100, height: 100))

// more stuff I used to test this
var input1 : Int = 0
var input2 : Int = 0
var input1total : Int = 0
var input2total : Int = 0

func sign() { // changed to non IB method, don't copy and paste this

    // unwrap some optionals (google nil coalescing operator)
    let forUsText = forUs.text ?? ""
    let forThemText = forThem.text ?? ""
    var usText = us.text ?? ""
    var themText = them.text ?? ""

    // elaborate way to convert String to Int (empty string returns a 0)
    let forUsTextNSString = forUsText as NSString
    let forUSTextFloat = forUsTextNSString.floatValue
    input1 = Int(forUSTextFloat)

    // compact method
    input1 = Int((forUsText as NSString).floatValue)
    input2 = Int((forThemText as NSString).floatValue)

    forUs.text = ""
    forThem.text = ""

    input1total += input1
    input2total += input2

    us.text = "\(input1total)"
    them.text = "\(input2total)"


    if ( input1total >= 152){
        print("you win")

    }
    if (input2total >= 152){
        print("you lose")
    }    
}

现在回答问题:

  • UILabel
    有一个属性
    numberOfLines
  • \n
    用于在文本中插入换行符
增加
numberOfLines
,并在新文本之前添加带有
\n
的新文本

usText += "\n\(input1total)"
themText += "\n\(input2total)"

// change += 1 to = 2 if that is what you actually need
us.numberOfLines += 1
them.numberOfLines += 1

us.text = usText
them.text = themText

@MohammedAlsaiari没问题,如果你喜欢答案,别忘了投票。
usText += "\n\(input1total)"
themText += "\n\(input2total)"

// change += 1 to = 2 if that is what you actually need
us.numberOfLines += 1
them.numberOfLines += 1

us.text = usText
them.text = themText