Monotouch:从视图中删除所有子视图
问题描述:
我想从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