iOS 12,UIStackView问题

时间:2018-10-03 07:48:34

标签: ios uiscrollview ios11 uistackview ios12

我已经使用UIStackView来创建可以通过删除按钮删除的芯片。如下所示,它在iOS 11上运行正常

Result in iOS 11

但是,当我尝试卸下芯片时,我面临iOS 12中标签重叠的问题。视图已从列表中删除,但仍保留在某处,这就是为什么它显示如下:

Result in iOS 12

我试图进行调查,发现删除的View仍在堆栈中,但在arrangedSubviews计数数组中为0

enter image description here

有人可以帮助我找到解决方案吗?还是iOS 12的已知问题?

1 个答案:

答案 0 :(得分:1)

-[UIStackView removeArrangedSubview:]的文档建议您在UIStackView之后调用removeFromSuperview,从removeArrangedSubview:中删除以前排列的视图。

在iOS 11及更低版本中,当您调用-[UIStackView removeArrangedSubview:]时,视图的位置移出了屏幕,并且没有从UIStackView中删除以前排列的视图。由于已将其移开,因此我个人从未注意到文档也应将其也从超级视图中删除。

在iOS 12中,视图不再移出屏幕。这样可以强制您按照文档的建议从堆栈视图中删除该视图。

https://developer.apple.com/documentation/uikit/uistackview/1616235-removearrangedsubview