在我的项目中有一个 A 视图,在此视图中有一个容器视图,显示了几个按钮。如果我点击这些按钮,则会出现另一个子视图。
当用户点击按钮并出现子视图时,我想要禁用显示的此子视图之外的所有交互。 感谢。
答案 0 :(得分:0)
请勿将其他子视图添加到容器视图中。将其添加到一个视图或为子视图创建第二个容器视图。 然后禁用按钮容器视图的用户交互。
containerView.userInteractionEnabled = false
答案 1 :(得分:0)
显示子视图后,您可以迭代到其所有超级视图并将其用户交互设置为false。
UIView* temp = self.view.superview;
temp.userInteractionEnabled = false;
现在,你可以递归调用它到它的所有超级视图来禁用其他功能。
答案 2 :(得分:0)
有两种方法可以做到这一点
1)禁用backgroundView的用户段。但是,你不应该补充 您的新视图作为backgroundView的子视图。你需要将新视图添加为superview的子视图。
self.view.addSubView(YOUR_NEW_VIEW)
然后你必须为你的backgroundView
禁用用户插入YOUR_BACKGROUND_VIEW.userInteractionEnabled = false
2)添加一个UIView作为backgroundView的子视图,该视图的边界和backgroundColor为.clear
let tempView = UIView(frame: YOUR_BACKGROUND_VIEW.bounds)
tempView.backgroundColor = .clear
YOUR_BACKGROUND_VIEW.addSubView(tempView)
然后将新视图添加到tempView的子视图
tempView.addSubView(YOUR_NEW_VIEW)
选择适合您的那个。 希望这会对你有所帮助