2010-06-17 140 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() 
     }