ios - viewDidAppear 调用之前 View 未显示? View 何时显示?

标签 ios iphone-sdk-3.0

我正在尝试在 iOS 屏幕上出现 View 后立即制作一个对用户可见的动画。我本以为我可以把它放在 viewDidAppear 中;该文档听起来像是在 View 可见后立即调用此函数。然而,情况似乎并非如此——viewDidAppear 是在 View 实际可见之前被调用的。该 View 是以编程方式创建的,而不是从 nib 中创建的。这是一个抽象示例:

sampleviewcontroller.m
@implementation sampleViewController
// Implement loadView to create a view hierarchy programmatically, without using a nib.
- (void)loadView {

    // setup a generic view 
    self.view = [[UIView alloc] initWithFrame:[UIScreen mainScreen].applicationFrame];
    self.view.backgroundColor = [UIColor blueColor];
}    

// View should be shown by now?
- (void)viewDidAppear:(BOOL)animated {

    [super viewDidAppear:animated];
    return; // set breakpoint here, but view is NOT visible in simulator at this point
}

这将创建一个纯蓝色 View 。但是,如果我在 viewDidAppear 的返回行处设置断点,则到达断点时蓝色 View 不可见。稍后它就会变得可见。

这是预期的吗? View 何时真正对用户可见?应用程序委托(delegate)代码是库存预生成的东西:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    

    // Override point for customization after app launch    
    [window addSubview:viewController.view];
    [window makeKeyAndVisible];

    return YES;
}

如果这很重要的话,我正在使用较旧的 SDK(在 Snow Leopard 上)...

最佳答案

我认为这都是关于应用程序循环的,当您位于该断点时,您将无法看到 View 。确实,当 View 可见时会调用 viewDidAppear,但当您将其与代码刹车点一起使用时则不会。

关于ios - viewDidAppear 调用之前 View 未显示? View 何时显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13556114/

相关文章:

objective-c - UIkit 动画和核心动画

ios - 如何在CloudKit中获取用户记录?

ios - 使用 SKActions Objective C 的无尽 Action

iphone - UITextField 中的白色文本 = iPhone 复制/粘贴选择中的不可见文本。使固定?

objective-c - 使用推送通知时如何处理多个设备?

ios - 如何在不四舍五入的情况下将字符串转换为货币?

objective-c - CALayer可拖动 mask

iphone - 弹出 UIView 会使应用程序崩溃

iphone - 如何从 iphone 中的 json 数组中获取对象?

iphone - 我的应用程序崩溃了,但除了数据格式化程序暂时不可用的行之外没有显示任何内容,我现在应该做什么?