0

我已经尝试了所有我能想到的让我的 UIWebView 在 Iphone 4、5 和 Ipad 上自动填充屏幕的方法。我使用了自动调整大小的蒙版,尝试根据设备以编程方式设置框架,但仍然注意到有效。

这不是加载的 HTML 的缩放问题,滚动条实际上​​不在它们应该在的位置。

在此处输入图像描述

我究竟做错了什么?我知道这不应该这么难。

@interface webview ()

@end

@implementation webview

@synthesize weber;

@synthesize suppressesIncrementalRendering;

static NSString* titled;
static NSString* urlholder;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization

    }
    return self;
}

-(void)viewWillAppear:(BOOL)animated
{
    [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES];
}


-(void)viewDidDisappear:(BOOL)animated
{
    [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];
}

- (void)viewDidLoad
{
    [super viewDidLoad];

    self.weber.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight);

    self.title= titled;


    NSString *fullURL = urlholder;
    NSURL *url = [NSURL URLWithString:fullURL];
    NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
    [weber setSuppressesIncrementalRendering:YES];
    [weber loadRequest:requestObj];

    wasLoaded = NO;
    alertWasShown = NO;
    weber.delegate = self;
}


- (void)webViewDidStartLoad:(UIWebView *)webView {
    [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES];
}

- (void)webViewDidFinishLoad:(UIWebView *)webView {
    wasLoaded = YES; // Indicates that it finished loading.
    [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];
}



-(void) setttl: (NSString*) titler
{
    titled= titler;
}

 -(void) setURL: (NSString*) url
 {
    urlholder= url;
 }
4

4 回答 4

0

假设 superview 填满屏幕,您应该将 的 分配为frame其父视图:UIWebViewboundsviewDidLoad

self.weber.frame = self.view.bounds;

如果您UIWebView正在以编程方式实例化代码,则代码将如下所示:

-(void)viewDidLoad
{
    [super viewDidLoad];

    self.weber = [UIWebView new];
    self.weber.frame = self.view.bounds;
    [self.view addSubview:self.weber];
}
于 2013-07-27T13:31:05.693 回答
0

故事板似乎覆盖了任何代码来调整 UIWebView 的大小。如果您尝试将动态 html/css 加载到 UIWebView 中并且它不会在方向更改时调整大小:尝试取消选中“自动布局”设置。

  1. 选择 .storyboard 文件
  2. 转到身份 qand 类型窗口(请参阅链接快照)
  3. 在 Interface Builder Document 部分取消选中“Use Auto Layout”。

来源: http: //forums.macrumors.com/showthread.php?t=1705519

于 2014-08-24T15:57:30.807 回答
0

我刚刚遇到这个问题,因为我遇到了类似的问题。为我解决的问题是将 UIWebView 的框架设置为 inviewDidLayoutSubViews而不是 in viewDidLoad。这是由entonio 在对其他答案之一的评论中提出的,但我将其作为答案放在这里,以便更容易找到是否有其他人出现。

于 2014-03-20T12:45:23.627 回答
0

在您的代码中,我看不到您在哪里设置 webview 的初始框架。调整大小的掩码决定了它如何调整大小,但它们不决定视图开始的大小。

看起来您正在使用 xib,尝试设置 webview 的大小以正确适合其超级视图。然后使用 InterfaceBuilder 在 Size 检查器中设置调整大小的属性。

或者,您可以以编程方式设置大小:

self.weber.frame = CGRectMake(0.0, 0.0, 200.0, 700.0);
于 2013-07-26T16:23:46.670 回答