【问题标题】:removeFromSuperView() removes all of its subviewsremoveFromSuperView() 删除其所有子视图
【发布时间】:2021-02-06 13:54:21
【问题描述】:

我有一个关于方法removeFromSuperview()的简单问题

例如,当我使用它来删除 UIView 时,我是否也删除了所有这些视图子视图?

我尝试在网上搜索,但至少没有找到任何可以解释的内容。

【问题讨论】:

    标签: swift uiview removefromsuperview


    【解决方案1】:

    是的。基本上,这就是子视图。你对一个超级视图做的,qua 视图,你做它的子视图。移动它、隐藏它、显示它、变换它、改变它的 alpha 值等等。

    换一种方式思考:子视图在界面中没有父视图是什么意思?这意味着子视图不在界面中。好吧,你刚刚从界面中取出了 superview。

    我们可以走得更远。超级视图拥有子视图。如果您删除超级视图,默认情况下它会被销毁。在这种情况下,子视图也会被破坏;它已经没有所有者了。

    【讨论】:

    • 非常有用的答案,我有一个问题,为什么当我在 UIView 中嵌入 AVPlayer 然后删除该 UIView 时,我仍然有该 avplayer 占用的内存?
    • AVPlayer 不是视图,因此您不能将其“嵌入”到 UIView 中,因此您的新问题毫无意义。无论如何,这不是你问的。我是来回答你实际提出的问题,而不是你可能一直隐藏的其他问题。
    • 嗯,我确实知道如何回答,我回答了。 AVPlayer 不是视图,删除 UIView 不会改变 AVPlayer 的任何内容。他们生活在完全不相关的概念世界中。
    • 我认为@StackGU 的意思是 AVPlayerLayer
    • @aheze 也许吧。但学会说出你的意思是有效使用 Stack Overflow 的重要部分。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多