2010-06-17 95 views
13

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

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

如何清除UIScrollView的内容?

回答

45
for (UIView *subview in scrollView.subviews) { 
    [subview removeFromSuperview]; 
} 
+21

或在一行中:[scrollView.s ubviews makeObjectsPerformSelector:@selector(removeFromSuperview)]; – Vladimir 2010-06-17 15:14:13

+0

谢谢格雷厄姆,这对我来说工作得很好。非常感谢.... – Joy 2010-06-17 15:28:56

+0

@Vladimir:很好。 – 2010-06-17 15:43:33

15

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

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

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

[subview removeFromSuperview]; 
1

我通常与一个衬垫这样走:如果你有兴趣..

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

在一行

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

SWIFT:

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