UIWebView加载横屏和竖屏时填充屏幕的框架

3

我正在将UIWebView添加到我的视图中,当我处于竖屏状态时,它可以正常工作。但是当我在横屏状态下加载同样的UIWebView时,它无法填满整个屏幕。我怀疑这是由于我设置框架的方式导致的:

CGRect screen = [[UIScreen mainScreen] bounds];
UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, screen.size.width, screen.size.height)];
webView.autoresizingMask = UIViewAutoresizingFlexibleWidth;
webView.scalesPageToFit = YES;

有没有更好的方法来实现,在横屏和竖屏模式下都能正确加载,并在旋转时填充屏幕?
2个回答

0
你有多确定父视图是否正在调整为全宽?UIWebView子视图不会比其父视图更大...

也许可以将初始大小设置为父级的大小,然后将调整大小标志设置为在两个方向上与父级一起调整大小。不确定如果您的初始大小大于父级会发生什么(我认为是这样)。可能会破坏自动调整大小的逻辑。 - Dad

0

我也遇到了同样的问题。在记录了self.view.frame.size.width之后,我惊讶地发现它是320而不是480。解决这个问题的方法是:

- (void)viewWillAppear:(BOOL)animated {
[self.view setBounds:CGRectMake(0.f, 0, self.view.frame.size.width, self.view.frame.size.height)];
[self.view setCenter:CGPointMake(self.view.frame.size.width/2, self.view.frame.size.height/2)];
[(UIWebView*)myWebView setFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];}

看起来在显示视图之前,self.frame 的正确大小已经返回了 :)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接