Я кодирую приложение iPhone, в котором у меня есть UIWebView
, который загружает веб-сайт с отзывчивым дизайном.uiwebview не изменяет размер после изменения ориентации на пейзаж
Проблема у меня есть, когда я поворачиваю устройства к пейзажу: UIWebView
вращается, но он сохраняет ту же ширину, что и портретный режим.
Я провел последние 5 часов поиска по всей сети, я нашел несколько решений, которые я использовал, но без особого успеха ...
в моем HTML страницы Я использую
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
я попробовал не используя
<meta name="viewport" content="width=device-width" />
ничего изменилось, в моем коде я реализует следующие функции для обработки вращаться, но это ничего не дает
- (void) didRotateFromInterfaceOrientation: (UIInterfaceOrientation)fromInterfaceOrientation
{
[self.myWebView stringByEvaluatingJavaScriptFromString:
[NSString stringWithFormat:
@"document.querySelector('meta[name=viewport]').setAttribute('content', 'width=%d;', false); ",
(int)self.myWebView.frame.size.width]];
NSLog(@"orientation width: %d", (int)self.myWebView.frame.size.width);
}
Я также проверил "Масштаб страницы в соответствие" флажок,
(с использованием Xcode 5, с iPhone4S и ios7)
Отлично работает на устройствах IOS («Добавить недостающие ограничения»). Симулятор также вращается, но, похоже, немного запутался (только три из четырех поворотов работают). Для меня нет необходимости использовать Objective C. –
Я не уверен, почему, но указание «Upside Down» на странице «Общая информация о развертывании» или в плане проекта, похоже, не работает. Я всегда добавляю этот метод к своему основному контроллеру представления, чтобы позаботиться об этой проблеме, а также обеспечить поддержку всех других ориентаций: '- (NSUInteger) supportedInterfaceOrientations { return (UIInterfaceOrientationMaskLandscapeLeft | UIInterfaceOrientationMaskLandscapeRight | UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskPortraitUpsideDown); } ' – Scotty
Поскольку iPhones не позволяют пользователям блокировать ориентацию в ландшафтном режиме, функция« портрет вверх-вниз »служит для этой функции. Однако на iPads вы, скорее всего, обнаружите, что портретный перевернутый режим работает, как и ожидалось. Предлагается просто придерживаться этих значений по умолчанию, если у вас нет конкретного варианта использования, чтобы оправдать что-то другое. – ogoldberg