我想從UIView中刪除所有子視圖。我試過以下幾點沒有效果:Monotouch:從視圖中刪除所有子視圖
for (int i = 0; i < this.Subviews.Length; i++)
{
this.Subviews[i].RemoveFromSuperview();
}
我想從UIView中刪除所有子視圖。我試過以下幾點沒有效果:Monotouch:從視圖中刪除所有子視圖
for (int i = 0; i < this.Subviews.Length; i++)
{
this.Subviews[i].RemoveFromSuperview();
}
剛剛測試過這個,它對我有用。 (雖然你的代碼對我來說也很好看......)
foreach (UIView view in tableView.Subviews) {
view.RemoveFromSuperview();
}
如果它不適合你,可能有些東西會阻止子視圖被刪除。
嘗試強制刷新視圖,或者在主線程上特別調用Remove調用。
您的示例的問題是您如何構建循環。
當您在0處移除視圖時,子視圖數組縮短一個元素,元素1在下一次迭代中變爲元素0。在另一方面你我變量不斷增加,所以你最終跳過視圖1.
如果你絕對需要使用for循環,這會做
for (int i = this.Subviews.Length - 1 ; i > 0 i--)
{
this.Subviews[i].RemoveFromSuperview();
}
東西從零開始可以解決的是,對?像'while(this.Subviews.Length> 0){this.Subviews [0] .RemoveFromSuperview(); }` – riha 2011-02-09 11:15:08