Xamarin.ios Monotouch:从视图中删除所有子视图

Xamarin.ios Monotouch:从视图中删除所有子视图,xamarin.ios,subview,Xamarin.ios,Subview,我正在尝试从UIView中删除所有子视图。我尝试了以下方法,但没有效果: for (int i = 0; i < this.Subviews.Length; i++) { this.Subviews[i].RemoveFromSuperview (); } for(int i=0;i0){this.Subviews[0].RemoveFromSuperview();} for (int i = this.S

我正在尝试从UIView中删除所有子视图。我尝试了以下方法,但没有效果:

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

        }
for(int i=0;i
刚刚测试了这个,它对我很有效。(虽然你的代码在我看来也不错…)


如果它不适用于您,则可能存在阻止删除子视图的情况。

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

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


删除0处的视图时,子视图数组将短一个元素,元素1在下一次迭代中变为元素0。另一方面,您的i变量不断增长,因此您最终会跳过视图1。

如果您确实需要使用for循环,这就可以了

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

基于0的东西可以解决这个问题,对吗?类似于
while(this.Subviews.Length>0){this.Subviews[0].RemoveFromSuperview();}
    for (int i = this.Subviews.Length - 1 ; i > 0  i--)
    {
        this.Subviews[i].RemoveFromSuperview ();
    }