2017-05-31 85 views
2

我已經從數組中創建了幾個標籤。在某些步驟,我不得不改變x和標籤的y座標,但不知道如何解決標籤:如何更改動態創建的標籤的屬性

for zone in zoneArray { 

     let zoneLabel = UILabel(frame: CGRect(x: locationX, y: locationY, width: 150, height: 75)) 

     zoneLabel.backgroundColor = UIColor.lightGray 
     zoneLabel.layer.masksToBounds = true 
     zoneLabel.layer.cornerRadius = 10 
     zoneLabel.text = zone} 

將非常高興,如果有人可以幫助我。

回答

1

也許你可以標記添加到每個標籤,找到使用標籤本身所期望的一個...

var i = 1 
for zone in zoneArray { 
    let zoneLabel = UILabel(frame: CGRect(x: locationX, y: locationY, width: 150, height: 75)) 
    let zoneLabel = UILabel(frame: CGRect(x: 0, y: 0, width: 150, height: 75)) 
    zoneLabel.backgroundColor = UIColor.lightGray 
    zoneLabel.layer.masksToBounds = true 
    zoneLabel.layer.cornerRadius = 10 
    zoneLabel.text = zone 
    zoneLabel.tag = i 
    i += 1 
} 
+0

切勿將視圖標記設置爲「0」。這是所有視圖的默認標記,並且明確使用它並不能幫助您找到該視圖。 – rmaddy

+0

@rmaddy:你是對的!謝謝。 – DungeonDev

+0

謝謝你的快速和有益的答案。對@DungeonDev只有一個問題:標籤是否也可以作爲字符串?所以我可以使用'zone'變量?這對於轉介會更方便。 – Heki

1

最簡單的方法是在你的VC

var labels = [UILabel]() 
聲明一個UILabel陣列

然後在你的for循環裏追加它。

0

以編程方式創建此類標籤時需要考慮兩個步驟。

第1步:

使標籤就像什麼婁佛朗哥先生說。

var labels = [UILabel]() 

步驟2:

做必要的着色或短信。

重要注意事項:不要像您所做的那樣設置框架。如果要爲所有設備設計,請以編程方式添加約束。也就是說,以編程方式使用自動佈局。

以編程方式進行自動佈局有三種方法。但我喜歡佈局錨定。因爲它很容易。只需跳到它,你就會喜歡它。