iOS UIWebview对于屏幕来说太大了

时间:2015-03-12 05:45:39

标签: ios iphone uiwebview uiwebviewdelegate

好的......只是做一些自学。以为我会尝试创建我认为是youtube的简单webview。因此webview打开了Youtube,但内容远离屏幕。就像将页面传递给更大的设备或其他东西一样。

我尝试了多个网站,例如谷歌和相同的结果,屏幕上的文字或屏幕上的图像。我认为它会缩小,当我使用iPhone上的Safari进入网站时它会正常显示但是通过app / webview我得到: Current Webview

这是我的viewcontroller.m:

#import "ViewController.h"
@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad 
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    webPage.delegate = self;
    webPage.scalesPageToFit = NO;
    NSString *website = @"http://www.youtube.com:";
    NSURL *url = [NSURL URLWithString:website];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];

    [webPage loadRequest:request];

}

- (void)webViewDidFinishLoad:(UIWebView *)webView 
{ 
    [webPage     stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"document.querySelector('meta[name=viewport]').setAttribute('content', 'width=%d;', false); ", (int)webPage.frame.size.width]]; 
}

- (void)didReceiveMemoryWarning 
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}
@end

这是我的viewcontroller.h

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController<UIWebViewDelegate>{
    IBOutlet UIWebView *webPage;   
}
@end

2 个答案:

答案 0 :(得分:1)

试试这个

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    webView.scalesPageToFit = YES;//set here
    return YES;
}

答案 1 :(得分:0)

好的,对我来说,有效的方法是在我的Main.storyboard上选择UIWebView,然后单击右下角的Resolve Auto Layout Issues按钮。 (图标是一个小三角形,两边都有垂直线......看起来有点像星球大战的领带战斗机......哈哈)从那里我选择了#34;重置为建议的约束条件&#34;并再次运行我的应用程序...一切正确显示!感谢Agent和Ayan指出我在正确的方向上有限制!