如何在for循环中创建实际遍历所有元素的for循环

时间:2015-09-26 17:59:37

标签: swift for-loop swift2

我正在尝试构建一个非常简单的应用程序:

它将打印数组的元素,所以这是我的两个问题

在我当前的代码中

@IBOutlet weak var moussarLabel: UILabel!
@IBAction func moussarButton(sender: AnyObject) {
    var moussar = ["dzv","avazv","sdv dv","dvar3"]

    for var i = 0; i<moussar.count; i++ {            
        moussarLabel.text = "\(moussar[i])"
    }
}

我想知道两件事:

  1. 当代码执行时,它会自动打印数组的最后一个元素而不显示其他元素
  2. 假设我希望数组中的文本更长,我如何使UILabel适应文本并允许用户滚动文本?
  3. 感谢您的帮助

3 个答案:

答案 0 :(得分:0)

  1. 数组中的最后一个元素是循环分配给文本标签的最后一个元素。听起来像预期的那样工作。你的意思是连接(添加)字符串吗?

  2. 您可以使用UITextView https://developer.apple.com/library/ios/documentation/UIKit/Reference/UITextView_Class/

  3. 执行此操作

答案 1 :(得分:0)

首先,您无法滚动UILabel,因此您必须使用UITextField。阅读文档了解详细信息,只显示一个单词时应该不会太难。要获取数组的最后一个元素,请使用moussarLabel.last返回一个可选项。由于文本视图或标签的text属性分别接受nil作为值,因此这不是问题。

答案 2 :(得分:0)

您应该将数组限定为类而不是函数。此外,计数器变量可用于访问不同的元素。

要使文字可滚动,您可以使用UITextView

@IBOutlet weak var moussarLabel: UITextView!

var moussar = ["dzv","avazv","sdv dv","dvar3"]
var moussarIndex = 0

@IBAction func moussarButton(sender: AnyObject) {
    moussarLabel.text = "\(moussar[moussarIndex++])"

    // if you want to cycle through the array use the following condition
    if moussarIndex >= moussar.count {
        moussarIndex = 0
    }
}