У меня есть приложение iPad с таблицей «ящик», отображаемой в popover. Пользователь может нажать и удерживать элемент в ящике, чтобы перетащить этот элемент из него и в мой основной вид. Эта часть отлично работает; к сожалению, перетаскиваемый вид появляется под popover и слишком мал, чтобы быть видимым, пока он не вытащится из-под него. Если я добавлю представление в качестве подзона контроллера вида в popover, оно будет обрезано рамкой popover, и поскольку я не могу получить доступ к представлению UIPopoverController
, я не могу отключить его уровень masksToBounds
, и это вероятно, не было бы большой идеей. Я подозреваю, что я мог бы использовать дополнительный UIWindow
с высоким значением windowLevel
, чтобы заставить перетаскиваемый вид появиться поверх popover, но это похоже на перебор. Есть ли лучшее решение?Как добавить представление поверх UIPopoverController
4
A
ответ
7
Got it. 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
Добавление Swift Версия:
let windows: [UIWindow] = UIApplication.shared.windows
let firstWindow: UIWindow = windows[0]
firstWindow.addSubview(loadingView)
firstWindow.bringSubview(toFront: loadingView)
EDIT админу: спасибо за обзор - удалил мой другой ответ в двух экземплярах How to show a UIView OVER a UIPopoverController