Monotouch:从视图中删除所有子视图

时间:2011-02-03 07:27:58

标签: xamarin.ios subview

我正在尝试从UIView中删除所有子视图。我尝试了以下措施没有效果:

        for (int i = 0; i < this.Subviews.Length; i++)
        {
            this.Subviews[i].RemoveFromSuperview ();

        }

4 个答案:

答案 0 :(得分:13)

刚试过这个,它对我有用。 (虽然你的代码对我来说也很好......)

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

如果它不起作用,可能会有一些东西阻止子视图被删除。

答案 1 :(得分:4)

示例的问题在于如何构建循环。

在0处删除视图时,Subviews数组的一个元素较短,元素1在下一次迭代时变为元素0。另一方面,你的i变量不断增长,所以你最终会跳过视图1。

答案 2 :(得分:0)

尝试在之后强制刷新视图,或者在主线程上专门调用Remove调用。

答案 3 :(得分:0)

如果你绝对需要使用for循环,那么

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