2016-11-24 13 views
0

我一直在試圖找出這些天。我到處搜索它非常簡單,但我很困惑。如何更改UILabel.text屬性遍歷字符串數組而不是硬編碼索引

import UIKit 

class ViewController: UIViewController { 

var arrays = ["A", "b", "C", "D", "E", "F"] 

@IBOutlet weak var ChangeText: UILabel! 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     // Do any additional setup after loading the view, typically from a nib. 

     ChangeText.text = arrays[0] 
    } 

    override func didReceiveMemoryWarning() { 
      super.didReceiveMemoryWarning() 
      // Dispose of any resources that can be recreated. 
    } 


    @IBAction func Button() { 
     ChangeText.text = arrays[1] 
    } 


} 

如何改變文本屬性,它是在Xcode項目的可選字符串通過你的字符串數組沒有硬編碼的數組的索引進行迭代。

我想要的是每次按下按鈕時都會更改標籤中的文本,但是,如果數值爲硬編碼,則會發生一次更改,然後就是這樣。

我已經嘗試了一個for循環和我自己的函數,但是我一直在得到錯誤,我不知道在哪裏放置我的函數或循環。所以我已經擺脫了它。

感謝您的耐心和幫助

回答

1

的CURRENTINDEX只是作爲屬性存儲

import UIKit 

class ViewController: UIViewController { 

var arrays = ["A", "b", "C", "D", "E", "F"] 
var currentIndex = 0 

@IBOutlet weak var ChangeText: UILabel! 

override func viewDidLoad() { 
    super.viewDidLoad() 
    ChangeText.text = arrays[currentIndex] 
} 

@IBAction func Button() { 
    currentIndex++ 
    if (currentIndex == arrays.count { 
     currentIndex = 0 
    } 

    ChangeText.text = arrays[currentIndex] 
} 
} 
+0

非常感謝soo,這真的很有幫助!但你是如何設法迭代陣列沒有for循環 –

+1

@ Alia.RK如果這個答案幫助你,你需要接受這個答案。 – Rajat

0

設置在頂部的index變量,並給它一個價值0

var index: Int = 0 

裏面你func Button()功能,增量次數是這樣的:

index = index + 1 

然後:

if count<arrays.index 
{ 
     ChangeText.text = arrays[index] 
} 
+0

@Munhail感謝您的回答。我有點困惑,因爲它是一個數組,我認爲最好的方式來遍歷一個,並獲得每個值將是使用一個for循環,但是當我嘗試這只是連續打印出數組,並沒有停止。爲什麼if語句是最好的選擇 –

0

你的問題似乎有多個方面給它。循環和在答案中不使用索引是Scope的問題。變量範圍是全局的,本地的或靜態的。這是他們存在的地方以及他們何時停止存在的問題。 (有更多的變量類型,但我認爲我們不應該在這裏進入)。

現在,「其他」方面不是傳統編程。你想知道爲什麼你可以循環一切,但只有一個出現。這是基本的渲染循環。它適用於遊戲,圖形,但不在語言教程中教授。

該程序運行其代碼,所有它,並在最後它顯示屏幕上的東西。所以如果你遍歷所有的東西,像這樣: for(string s in array){ textArea.text = s; } 它將完成並始終顯示最後一個。因爲它在呈現之前完成了該循環。你想要的是在它已經可見之前不要改變它。

iOS基本上是一個遊戲循環。或者一個圖形渲染循環。你不必擔心它,你永遠不會看到它。但是如果你想知道如何使用它,視圖編程指南,動畫編程指南和核心圖形編程指南將教你如何工作。不過,在這個階段,我認爲你應該更多地關注核心語言功能。

我希望你已經取得了一些進展。並隨時隨地將東西打印到屏幕上學習