【问题标题】:viewDidAppear presence in code messes with layout代码中的 viewDidAppear 存在与布局混淆
【发布时间】:2013-09-03 09:59:44
【问题描述】:

我遇到了一些非常奇怪的情况。

我的代码如下所示:

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    return self;
}

- (void)viewDidLoad {
    [super viewDidLoad];
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning]; 
}

视图控制器如下所示:

奇怪的是,当我只添加

- (void)viewDidAppear:(BOOL)animated {
}

即使 WITHOUT 内部有任何操作,它也会完全弄乱视图控制器的布局并使其看起来像这样:

我没有添加任何其他代码行,只是为 viewDidAppear 添加了空标题。删除后,布局正常。这里到底发生了什么?

【问题讨论】:

  • 如果您从 viewDidAppear: 中调用 [super viewDidAppear:animated]; 会发生什么?

标签: ios objective-c layout viewdidappear


【解决方案1】:

在 viewDidLoad 之后,您的视图将根据状态栏和导航栏(如果有的话)改变大小。如果您不调用[super viewDidAppear:animated];,您的子视图可能无法正确重新定位。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-08
    • 2012-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多