Как добавить представление поверх UIPopoverController - PullRequest
4 голосов
/ 12 апреля 2010

У меня есть приложение для iPad с таблицей «ящиков», отображаемой во всплывающем окне. Пользователь может нажать и удерживать элемент в ящике, чтобы перетащить этот элемент из него в мой основной вид. Эта часть отлично работает; к сожалению, перетаскиваемый вид отображается под поповером и слишком мал, чтобы его можно было увидеть, пока он не вытащен из-под него. Если я добавлю представление как подпредставление контроллера представления в во всплывающем окне, оно будет обрезано рамкой всплывающего окна, и, поскольку я не могу получить доступ к представлению UIPopoverController, я не могу отключить его слой masksToBounds - и это, вероятно, не будет хорошей идеей в любом случае. Я подозреваю, что я мог бы использовать дополнительный UIWindow с высоким значением windowLevel, чтобы заставить перетаскиваемый вид появляться сверху поповера, но это выглядит как излишнее. Есть ли лучшее решение?

Ответы [ 2 ]

7 голосов
/ 12 апреля 2010

Понял. 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;
0 голосов
/ 27 января 2017

Добавление Swift Версия:

    let windows: [UIWindow] = UIApplication.shared.windows
    let firstWindow: UIWindow = windows[0]

    firstWindow.addSubview(loadingView)
    firstWindow.bringSubview(toFront: loadingView)

РЕДАКТИРОВАТЬ для администратора: спасибо за обзор - удалил мой другой ответ в двух экземплярах Как показать UIView НАД UIPopoverController

...