UIAlertView в iOS8 отображается не по центру, не в том месте, только часть экрана затемнена

Я создаю приложение для iPad на iOS8, альбомной ориентации, обновляюсь с iOS7. Я заменил UIAlertView (устаревший) на UIAlertController в ряде других мест в своем приложении, что устранило эту проблему. Однако я также использую UIWebView, который, по-видимому, показывает свои собственные UIAlertViews. Когда это происходит, у меня тоже возникает та же проблема (см. частичное изображение, обрезанное). Предупреждение смещено ниже влево, и только левая 2/3 экрана затемнена, и, что еще хуже, самая правая часть, которая не затемнена, по-прежнему реагирует на сенсорные жесты, поэтому можно управлять приложением за модальным окном!

Предупреждение, которое выдает UIWebView, является стандартным предупреждением «хочет использовать ваше местоположение». Как исправить это для UIWebView? Спасибо!

введите здесь описание изображения

РЕДАКТИРОВАТЬ: проблема обычно возникает, когда приложение переводится в активное состояние после попытки показать предупреждение в фоновом режиме.


person Brad Thomas    schedule 07.01.2015    source источник


Ответы (1)


Я встречал аналогичную проблему с iPhone, это происходит, когда приложение поддерживает несколько масок поворота и вынуждено использовать строго одну. По сути, viewController, например, имеет shouldAutoRotate = NO, это влияет только на контроллер представления, а не на текущее окно, которое представляет собой alertView, представленный UIWebView.

Попробуйте реализовать application:supportedInterfaceOrientationsForWindow Вот пример:

-(NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
    return (enablesRotation == YES) ? UIInterfaceOrientationMaskAllButUpsideDown : UIInterfaceOrientationMaskLandscape;
}

Это говорит о том, что текущее окно должно соответствовать желаемой поддерживаемой маске ориентации. Надеюсь, это поможет.

person Mark Dominick Flores    schedule 10.03.2015