2016-11-30 9 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 

} 
    } 
    } 

私はサーバー(返信数)から数値を取り出して、画面上のいくつかのビューに色を付けることによって数値を表現しようとしています。私は底の向こう側に10の泡を持っています、そして、返信が4であったならば、左から始めて、私は泡の4つが緑の背景色を持ち、残りはデフォルトの黒のままにしたいと思っています。サブビューを繰り返すswift/ios

私が上記のコードを使って何をしようとしているのは、私が成功している返答数を取得することです。私の最初のバブルは10のタグから始まり、19まで上がります。 0よりも、返信があることを意味し、10の最初のタグを緑にしてから、11の次のタグに移動し、返信カウントからマイナスし、返信がなくなるまで続けます。

私は

replycount = replycount - 1 

をコメントアウトし、viewWithTag(10)にviewWithTag(startingTag)を変更し、番号でハードコーディング場合は、以下のコードがされて動作します。トンのいずれかの場合にのみ時間ホース2つのことは行われませんビューの色は変更されません。

これを行うには、より良い方法がありますか、この問題に取り組んでいる理由がありますか?

答えて

1

サブビューのループをスキップして、ちょうどself.view.viewWithTagを実行しますか?私はちょうどすべての気泡が同じビューにあると仮定していますが、それぞれ異なるサブビューにはありません。私はおそらく明確にするため、それをこのような何かを書かれているであろうが

var replycount = replies.count 

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

ので、はるかに簡単。どうもありがとう! – user6820041

関連する問題