我正在尝试从UIView中删除所有子视图。我尝试了以下措施没有效果:
for (int i = 0; i < this.Subviews.Length; i++)
{
this.Subviews[i].RemoveFromSuperview ();
}
答案 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 ();
}