首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >循环遍历子视图swift / ios

循环遍历子视图swift / ios
EN

Stack Overflow用户
提问于 2016-11-30 19:35:07
回答 1查看 476关注 0票数 0
代码语言:javascript
复制
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个气泡有一个绿色的背景色,其余的保持默认的黑色。

我试图用上面的代码获取回复计数,这是我正在成功完成的,我的第一个气泡从标签10开始,上升到19,如果回复计数超过0,意味着有一个回复,我想取第一个10的标签,绿色,然后转到下一个标签11,减去回复计数,然后继续运行,直到没有更多的回复。

下面的代码唯一起作用的是,如果我注释掉

代码语言:javascript
复制
replycount = replycount - 1

并将viewWithTag(startingTag)更改为viewWithTag(10),并在数字中进行硬编码。如果这两件事都没有完成,视图的颜色就不会改变。

有没有更好的方法来做这件事,或者我为什么会遇到这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-30 19:42:14

跳过子视图的循环,只执行self.view.viewWithTag吗?虽然我只是假设所有的气泡都在同一个视图中,而不是在不同的子视图中。

虽然为了清楚起见,我可能会这样写它:

代码语言:javascript
复制
var replycount = replies.count

for tag in 10 ..< (10 + replycount) {
  self.view.viewWithTag(tag)?.backgroundColor = .green
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40896709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档