2016-11-30 83 views
0
var replycount = replies.count 
var startingTag = 10 


    for subview in self.personView.subviews { 

    if replycount > 0 { 
     subview.viewWithTag(startingTag)?.backgroundColor = .green 
     replycount = replycount - 1 
     startingTag = startingTag + 1 

} 
    } 
    } 

我從服務器(replycount)拉數字,並嘗試通過在屏幕上着色一些視圖來表示數字。我在底部有10個氣泡,如果replycount爲4,則從左側開始,我希望4個氣泡具有綠色背景色,其他氣泡保持其默認黑色。通過子視圖循環swift/ios

我想要做的與上面的代碼是搶我的迴應計數,我成功地做到了,我的第一個泡沫開始於10的標籤,並上升到19,如果回覆計數更多這意味着有一個回覆,我想要採取10的第一個標記,使其綠色,然後移動到下一個標記11,減去回覆計數,並繼續前進,直到沒有更多的回覆。

下面的代碼工作的唯一情況是,如果我註釋掉

replycount = replycount - 1 

,改變viewWithTag(startingTag)到viewWithTag(10)和數量進行硬編碼。如果任一的T軟管兩件事情沒做完,視圖的顏色沒有改變。

有沒有更好的方法來做到這一點,或有什麼想法,爲什麼我遇到這個問題?

回答

1

跳過循環子視圖,只是做self.view.viewWithTag?雖然我只是假設所有的氣泡都在同一視圖中,而不是每個子視圖都在不同的子視圖中。

雖然我可能會寫它是這樣爲了清晰:

var replycount = replies.count 

for tag in 10 ..< (10 + replycount) { 
    self.view.viewWithTag(tag)?.backgroundColor = .green 
} 
+0

所以要簡單得多。非常感謝! – user6820041