我有一个iPad应用程序,其中一个“抽屉”表显示在一个弹出框中。用户可以轻触并按住抽屉中的项目以将该项目拖出其中并进入我的主视图。那部分工作正常;不幸的是,被拖动的视图出现在弹出窗口下方,并且太小而不能被看到,直到它从它下面被拖出。如果我将视图作为视图控制器的子视图添加到弹出窗口中,它会被弹出窗口的框架剪切掉,因为我无法访问UIPopoverController
的视图,我可以禁用它的图层masksToBounds
- 无论如何这可能不是一个好主意。我怀疑我可以使用具有高UIWindow
值的额外windowLevel
来强制拖动视图显示在弹出框的顶部,但这看起来有点过分。有更好的解决方案吗?
答案 0 :(得分:7)
知道了。 UIWindow
工作正常。代码:
// when drag starts
draggingView = [[UIWindow alloc] initWithFrame:CGRectMake(0,0,100,100)];
draggingView.windowLevel = UIWindowLevelAlert;
draggingView.center = [gestureRecognizer locationInView:self.view.window];
[draggingView makeKeyAndVisible];
// when drag ends
[draggingView release];
draggingView = nil;
答案 1 :(得分:0)
添加 Swift 版本:
let windows: [UIWindow] = UIApplication.shared.windows
let firstWindow: UIWindow = windows[0]
firstWindow.addSubview(loadingView)
firstWindow.bringSubview(toFront: loadingView)
编辑给管理员:感谢您的评论 - 删除了我的其他答案,一式两份How to show a UIView OVER a UIPopoverController