子视图的 isHidden 和 remove 有什么区别?

Nev*_*ani 2 ios

使用从子视图中删除与隐藏之间有什么区别?我需要一个用户无法访问的按钮。哪个更好、更安全以确保用户无法访问该按钮?这两种方法有什么区别,除了这里提到的这两种方法之外,还有没有更好的方法可以做到这一点?

Ima*_*Ali 5

简单的等式是“如果您将来不需要 View/SubView,只需执行removeFromSuperView,否则隐藏显示View/SubView。”

哪一个更好?取决于您的要求。大多数情况下,最好隐藏一个视图,如果发生某些事件时需要再次显示。

区别如下:

是隐藏的:

隐藏视图从其窗口中消失并且不接收输入事件。然而,它仍然在其父视图的子视图列表中,并像往常一样参与自动调整大小。隐藏带有子视图的视图具有隐藏这些子视图和它们可能拥有的任何视图后代的效果。这种效果是隐式的,不会改变接收者后代的隐藏状态。隐藏作为窗口当前第一响应者的视图会导致视图的下一个有效关键视图成为新的第一响应者。

removeFromSuperView:

取消视图与其父视图及其窗口的链接,并将其从响应者链中移除。如果视图的父视图不为 nil,则父视图释放视图。调用此方法将删除引用您要删除的视图或引用您要删除的视图的子树中的任何视图的任何约束。