Так что я пытаюсь получить это простое поведение, работая над моим iPhone-приложением некоторое время. У меня есть панель навигации наверху и панель вкладок внизу. Я загружаю весь свой контент в веб-просмотр, который я хочу установить между ними. Я отправил по этому вопросу уже дважды,UIWebBrowserView не охватывает весь UIWebView
как здесь: IOS View still does not load in the correct position
и здесь: Programmatically setting content to fill screen between tab bar and nav controller
В настоящее время мой WebView выглядит и работает отлично на iPhone 4 и 4s, возникает вопрос о 5s. Когда экран заканчивает загрузку, он выглядит как изображение здесь: http://grosh.co/screen.jpg. Это происходит как на симуляторе, так и на устройствах.
При дальнейшей проверке я обнаружил, что UIWebView на самом деле правильно работает (серые области, которые вы видите, являются веб-просмотром). Меньший контент на самом деле является UIWebBrowserView, с которым мне сложно найти информацию.
У меня есть код, который я использую ниже, а также вывод журнала для обеспечения правильности всех номеров. Мои вопросы:
1) Есть ли лучший способ настроить веб-просмотр для охвата области экрана между верхними и нижними столбцами для всех устройств?
2) Если нет, существует ли способ установить UIWebBrowser для охвата всего веб-представления?
Я попытался выполнить итерацию по подземельям webview, как описано здесь: http://normansoven.com/ios-webview/#.VHyOUr6Jnww, но webBrowserView никогда не видел.
Teh Codez: выход
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
CGFloat viewheight = self.view.bounds.size.height;
NSLog(@"Height1:%f",viewheight);
CGRect screenRect = [[UIScreen mainScreen] bounds];
CGFloat viewheight2 = screenRect.size.height;
NSLog(@"Height2:%f",viewheight2);
CGFloat height = self.view.frame.size.height;
NSLog(@"Height3:%f",height);
CGFloat navBarHeight = self.navigationController.navigationBar.frame.size.height;
NSLog(@"NAVHeight:%f",navBarHeight);
CGFloat tabBarHeight = self.tabBarController.tabBar.frame.size.height;
NSLog(@"TABHeight:%f",tabBarHeight);
CGFloat statusbarheight = [UIApplication sharedApplication].statusBarFrame.size.height;
NSLog(@"StatbarHeight:%f",statusbarheight);
CGFloat spaceToRemove = navBarHeight + tabBarHeight + statusbarheight;
NSLog(@"NAVHeight+TABHeight:%f",spaceToRemove);
CGFloat newHeight = viewheight - spaceToRemove;
NSLog(@"NewHeight:%f",newHeight);
CGRect frame = CGRectMake(0 , navBarHeight + statusbarheight, self.view.frame.size.width, newHeight);
self.webView = [[UIWebView alloc]initWithFrame:frame];
//self.webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
[self.view addSubview:self.webView];
self.webView.scalesPageToFit = true;
NSURL *url = [NSURL URLWithString:@"http://example.com/finnaRoot/index.php"];
NSURLRequest *requestURL = [NSURLRequest requestWithURL:url];
[self.webView loadRequest:requestURL];
self.webView.scrollView.showsVerticalScrollIndicator = false;
self.navigationItem.titleView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"logo.png"]];
self.webView.delegate = self;
self.tabBarController.delegate = self;
self.webView.scrollView.delegate = self;
}
лаг, от iPhone 5s
2014-11-26 17:19:21.184 Finna[14617:1765689] Height1:568.000000
2014-11-26 17:19:21.185 Finna[14617:1765689] Height2:568.000000
2014-11-26 17:19:21.185 Finna[14617:1765689] Height3:568.000000
2014-11-26 17:19:21.185 Finna[14617:1765689] NAVHeight:44.000000
2014-11-26 17:19:21.185 Finna[14617:1765689] TABHeight:49.000000
2014-11-26 17:19:21.185 Finna[14617:1765689] StatbarHeight:20.000000
2014-11-26 17:19:21.185 Finna[14617:1765689] NAVHeight+TABHeight:113.000000
2014-11-26 17:19:21.186 Finna[14617:1765689] NewHeight:455.000000
Так что последнее обновление iOS исправило эту проблему, что заставило меня поверить, что это была ошибка. Я добавлю обходной код, который я использовал ниже, когда получаю шанс. Это сработало, и приложение было принято в магазин. – Voltron