【发布时间】:2012-11-25 22:15:35
【问题描述】:
我正在尝试在 iOS 屏幕上出现视图之后立即制作动画——对用户可见。我原以为我可以把它放在 viewDidAppear 中;文档听起来像是在视图可见后立即调用它。但是,情况似乎并非如此—— viewDidAppear 在视图实际可见之前被调用。视图是以编程方式创建的,而不是从 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
}
这将创建一个纯蓝色视图。但是,如果我在 viewDidAppear 中的返回行设置断点,则在到达断点时,该蓝色视图将不可见。它会在稍后的某个时间变得可见。
这是预期的吗?视图何时真正对用户可见? App Delegate 代码是股票 pregen 的东西:
- (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 上)...
【问题讨论】:
标签: ios iphone-sdk-3.0