Веб-представление автоматически изменяет размер на книжное и альбомное. - PullRequest
6 голосов
/ 24 февраля 2010

Я новичок в разработке для iphone. В моем приложении я хочу отобразить веб-вид на устройстве с c книжной ориентацией. Он также должен поддерживать альбомную ориентацию. Я использовал приведенный ниже метод, но ожидаемый результат отсутствует.

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{

return (interfaceOrientation == UIInterfaceOrientationPortrait || 

 interfaceOrientation == UIInterfaceOrientationLandscapeLeft || interfaceOrientation == 

UIInterfaceOrientationLandscapeRight);
}

пожалуйста, направьте меня. Пожалуйста, помогите мне. Спасибо

Ответы [ 2 ]

10 голосов
/ 25 февраля 2010

Я думаю, что вы установили фиксированный кадр для веб-просмотра. Это не поможет при реализации ориентации chage

Попробуйте это:

Используйте этот код для отображения веб-представления. Измените URL переполнения стека с помощью вашего URL;

contentView = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];
contentView.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight);
self.view = contentView;
self.view.autoresizesSubviews = YES;


CGRect webFrame = [[UIScreen mainScreen] applicationFrame];
webFrame.origin.y -= 20.0;

webView = [[UIWebView alloc] initWithFrame:webFrame];

[contentView addSubview:webView]; 
webView.scalesPageToFit = YES;
webView.autoresizesSubviews = YES;
webView.autoresizingMask=(UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth);
[webView setBackgroundColor:[UIColor clearColor]];
NSString *urlAddress = @"https://www.stackoverflow.com";
NSURL *url = [NSURL URLWithString:urlAddress];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
[webView loadRequest:requestObj];
webView.delegate =self;
[webView release];

Для поддержки ориентации

   - (BOOL) shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation) orientation 
{
return YES;

}

Для изменения веб-вида с ориентацией

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
{
if(fromInterfaceOrientation == UIInterfaceOrientationPortrait){
 [webView stringByEvaluatingJavaScriptFromString:@"rotate(0)"];

}
else{
    [webView stringByEvaluatingJavaScriptFromString:@"rotate(1)"];
}
}

Надеюсь, что вышесказанное удовлетворит ваше требование. Всего наилучшего.

0 голосов
/ 25 февраля 2010

Если вы хотите поддерживать любую ориентацию, просто верните YES.

- (BOOL) shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation) orientation 
{
    return YES;
}
...