2011-02-03 97 views

回答

12

剛剛測試過這個,它對我有用。 (雖然你的代碼對我來說也很好看......)

foreach (UIView view in tableView.Subviews) { 
    view.RemoveFromSuperview(); 
} 

如果它不適合你,可能有些東西會阻止子視圖被刪除。

0

嘗試強制刷新視圖,或者在主線程上特別調用Remove調用。

4

您的示例的問題是您如何構建循環。

當您在0處移除視圖時,子視圖數組縮短一個元素,元素1在下一次迭代中變爲元素0。在另一方面你我變量不斷增加,所以你最終跳過視圖1.

+1

東西從零開始可以解決的是,對?像'while(this.Subviews.Length> 0){this.Subviews [0] .RemoveFromSuperview(); }` – riha 2011-02-09 11:15:08

0

如果你絕對需要使用for循環,這會做

for (int i = this.Subviews.Length - 1 ; i > 0 i--) 
    { 
     this.Subviews[i].RemoveFromSuperview(); 
    }