【发布时间】:2014-07-04 07:34:58
【问题描述】:
我想以编程方式创建一个将 UIWebView 作为子视图的控制器。我设法用以下代码做到这一点:
VLUpdateViewController.h
@interface VLUpdateViewController : UIViewController
@property (nonatomic, strong) UIWebView* webView;
@end
VLUpdateViewController.m
@implementation VLUpdateViewController
- (void)viewDidLoad
{
[super viewDidLoad];
[self.view setBackgroundColor:[UIColor blueColor]];
[self.view setTranslatesAutoresizingMaskIntoConstraints:NO];
self.webView = [[UIWebView alloc] initWithFrame:self.view.frame];
[self.webView setBackgroundColor:[UIColor redColor]];
[self.webView setScalesPageToFit:YES];
[self.view addSubview:self.webView];
NSArray* constraints = [[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-0-[webView]-0-|" options:0 metrics:nil views:@{@"webView" : self.webView}] arrayByAddingObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-0-[webView]-0-|" options:0 metrics:nil views:@{@"webView" : self.webView}]];
[self.view addConstraints:constraints];
}
但是,我的问题是当方向改变时 webView 没有正确调整大小。事实上,它根本不会调整大小。它只是在屏幕的中心旋转。
肖像:
风景:
我尝试省略setTranslatesAutoresizingMaskIntoConstraints:,但是当我将方向更改为横向时,我得到了以下结果。
【问题讨论】:
-
当方向改变时你需要更新 UIWebview 的框架。并更新约束。
-
我在情节提要上做的时候没有问题,并且该问题的正确答案对我不起作用。
-
@YogeshSuthar 我该怎么做?
-
@halileohalilei 检查stackoverflow.com/a/4301828/1679187
-
你们为什么把它标记为重复?您甚至看过建议的答案吗?这不是这个问题的答案!这个要求采用程序化方法。
标签: ios objective-c uiwebview