我想知道如果有人知道为什么当你在viewDidLoad和viewWillAppear设置子视图的框架的变化不会影响在屏幕上,但如果你设置它在viewDidAppear他们呢? 在我的情况下,我加载了一个自定义xib有两个tableviews,然后尝试在viewDidLoad移动它们,以允许在viewDidLoad添加另一个视图的空间,因为它并不总是需要显示它。 问题是,当我设置viewDidLoad或viewWillAppear它在对象上设置框架,我可以看到通过打印出来,但它不反映在屏幕上。 将设置的框架调用移动到viewDidAppear将导致一切按预期工作。 我认为我应该能够在viewDidLoad设置框架是错误的吗? – (id)init { if ( self = [super initWithNibName:@"MyView" bundle:nil] ) {} return self; } – (void)viewDidLoad { [super viewDidLoad]; self.descriptionWebView = [[[UIWebView alloc] initWithFrame:CGRectMake( 0, 0, self.view.frame.size.width, 200 )] autorelease]; [self.view addSubview:self.descriptionWebView]; self.tableView1.autoresizingMask = UIViewAutoresizingNone; self.tableView2.autoresizingMask = UIViewAutoresizingNone; [self.descriptionWebView loadRequest:[NSURLRequest requestWithURL:[[NSBundle mainBundle] URLForResource:@"…." withExtension:@"html"]]]; table1LocationWithHeader = CGRectMake( self.tableView1.frame.origin.x, 200, […]