【问题标题】:Clear content of UIScrollView清除 UIScrollView 的内容
【发布时间】:2011-03-05 00:28:53
【问题描述】:

我有一个使用计时器的 iPhone 应用程序,它会在每个时间间隔创建一些 UILabel 控件并将它们添加到 UIScrollView 中。

我想要做的是在将UILabel 控件放入UIScrollView 之前,在每个时间间隔清除UIScrollView

如何清除UIScrollView的内容?

【问题讨论】:

    标签: iphone uiscrollview


    【解决方案1】:
    for (UIView *subview in scrollView.subviews) {
      [subview removeFromSuperview];
    }
    

    【讨论】:

    • 或一行:[scrollView.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)];
    • 这个答案是错误的,因为滚动指示器也是scrollView的子视图。
    • 我知道这是旧的,但我有点困惑。我在向 uiscrollview 动态添加/删除内容时遇到问题,它将旧内容与新内容混合在一起,我正在循环遍历子视图并使用 for (int i = 0; i
    【解决方案2】:

    您还将使用above solution 删除滚动条。要解决这个问题,你可能会问要移除的子视图是否是 UIImageView 实例。显然,如果您碰巧在滚动视图中有自己的 UIImageViews,则需要进行更多检查。

    for (UIView *subview in scrollView.subviews) {
      if(![subview isKindOfClass:[UIImageView class]])
        [subview removeFromSuperview];
    }
    

    【讨论】:

      【解决方案3】:

      我通常会选择这样的单班轮:如果您有兴趣..

      while(scrollView.subviews.count > 0) [[scrollView.subviews objectAtIndex:0] removeFromSuperview];
      

      【讨论】:

        【解决方案4】:

        非常简单,只需在循环中编写此代码即可,其中动态结构会频繁创建和更改其内容。

        [subview removeFromSuperview];
        

        【讨论】:

          【解决方案5】:

          一行

          [_ui_scroll.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)];
          

          【讨论】:

            【解决方案6】:

            斯威夫特:

             for  subview in self.scrollView.subviews
                    {
                         subview.removeFromSuperview()
                    }
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2015-04-30
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2016-05-12
              • 2011-05-02
              相关资源
              最近更新 更多