我已经使用UIStackView创建芯片,可以通过删除按钮删除。它在iOS 11中运行良好,如下所示

但是,当我试图移除芯片时,我面临着iOS 12中标签重叠的问题。视图已从列表中删除,但仍在某个位置,这就是它显示如下所示的原因:

我试图调查,发现我移除的视图仍然在堆栈中,但是在arrangedSubviews计数数组中是0。

有人能帮我找到这个问题的解决方案吗?还是iOS 12的已知问题?
发布于 2018-12-13 18:47:21
-[UIStackView removeArrangedSubview:]的文档建议您从UIStackView中删除以前安排的视图,方法是在removeArrangedSubview:之后调用removeFromSuperview。
在iOS 11和更低版本中,当调用-[UIStackView removeArrangedSubview:]时,视图的位置被移出屏幕,并且没有从UIStackView中删除以前安排的视图。因为它被移走了,我个人从未注意到应该从superview中移除它的文档。
在iOS 12中,视图不再移出屏幕。这强制要求您按照文档的建议从堆栈视图中删除视图。
https://developer.apple.com/documentation/uikit/uistackview/1616235-removearrangedsubview
https://stackoverflow.com/questions/52622219
复制相似问题