我已经使用UIStackView来创建可以通过删除按钮删除的芯片。如下所示,它在iOS 11上运行正常
但是,当我尝试卸下芯片时,我面临iOS 12中标签重叠的问题。视图已从列表中删除,但仍保留在某处,这就是为什么它显示如下:
我试图进行调查,发现删除的View仍在堆栈中,但在arrangedSubviews
计数数组中为0
有人可以帮助我找到解决方案吗?还是iOS 12的已知问题?
答案 0 :(得分:1)
-[UIStackView removeArrangedSubview:]
的文档建议您在UIStackView
之后调用removeFromSuperview
,从removeArrangedSubview:
中删除以前排列的视图。
在iOS 11及更低版本中,当您调用-[UIStackView removeArrangedSubview:]
时,视图的位置移出了屏幕,并且没有从UIStackView
中删除以前排列的视图。由于已将其移开,因此我个人从未注意到文档也应将其也从超级视图中删除。
在iOS 12中,视图不再移出屏幕。这样可以强制您按照文档的建议从堆栈视图中删除该视图。
https://developer.apple.com/documentation/uikit/uistackview/1616235-removearrangedsubview