我已经尝试了一切我能想到的让我的UIWebView在Iphone 4,5和Ipads上自动填充屏幕。我已经使用了自动调整大小的掩码,尝试根据设备以编程方式设置帧,但仍然注意到了。
这不是加载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;
}
答案 0 :(得分:0)
在您的代码中没有任何地方可以看到您在哪里设置webview的初始框架。调整大小的蒙版确定它的调整大小,但它们不确定视图的大小。
看起来您正在使用xib,尝试将webview的大小设置为在其superview中正确显示。然后使用InterfaceBuilder在“大小”检查器中设置调整大小属性。
或者,您可以通过编程方式设置大小:
self.weber.frame = CGRectMake(0.0, 0.0, 200.0, 700.0);
答案 1 :(得分:0)
假设超级视图填满了屏幕,您应该在frame
中将UIWebView
bounds
作为其父级的viewDidLoad
分配:
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];
}
答案 2 :(得分:0)
我刚遇到这个问题,因为我遇到了类似的问题。为我修复的是在viewDidLayoutSubViews
而不是viewDidLoad
中设置我的UIWebView框架。这是由entonio在其他一个答案的评论中提出的,但我把它作为答案放在这里,以便更容易找到是否有其他人出现。
答案 3 :(得分:0)
故事板似乎会覆盖任何调整UIWebView大小的代码。如果您正在尝试将动态html / css加载到UIWebView中,并且它不会在方向更改上调整大小:尝试取消选中" autolayout"设置。