我最近将我的 iPhone 4 升级到了 iOS 6。这样做后,我注意到我正在开发的其中一个应用程序在呈现模式对话框时不再按预期运行。
我正在使用 UIModalTransitionStyleFlipHorizontal。
问题是在动画期间我看到了我只能描述为视图的中间绘制状态。我暂时看到部分绘制的视图,然后最终绘制了整个视图。在 iOS 6 之前我从未经历过这种情况。
流程如下:
ViewController 决定是时候向用户展示一个模态对话框了:
self.newController = [[NewViewController alloc] initWithNibName:@"PaginatedView" bundle:[NSBundle mainBundle]];
self.newController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:self.newController animated:YES];
NewViewController 为页面初始化视图:
(从 NewViewController:initWithNibName:bundle 调用:)
NSUInteger pages = 2;
CGFloat cx = 0;
for (int i = 0; i < pages ; i++) {
// Load the view from nib
NSArray *nibObjects = [[NSBundle mainBundle] loadNibNamed:@"SomeView" owner:nil options:nil];
SomeView* someView = (SomeView*)[nibObjects objectAtIndex:0];
[someView initializeWithData:[_objects objectAtIndex:i]];
[someView setParentController:self];
[someView setBackButtonTarget:self withSelector:@selector(backButtonClick:)];
// Set the x origin for the view
CGRect viewRect = someView.frame;
viewRect.origin.x = ((self.scrollView.frame.size.width - viewRect.size.width) / 2) + cx;
viewRect.origin.y = ((self.scrollView.frame.size.height - viewRect.size.height) / 2);
someView.frame = viewRect;
[self.scrollView addSubview:someView];
cx += self.scrollView.frame.size.width;
}
self.pageControl.numberOfPages = pages;
[self.scrollView setContentSize:CGSizeMake(cx, [scrollView bounds].size.height)];
SomeView 对象是一个向用户显示表格的视图。播放动画时,我暂时看到表格及其标题为空,然后内容终于出现了。
将 modalTransitionStyle 切换为任何其他样式可以解决问题,但我想使用 UIModalTransitionStyleFlipHorizontal。
关于正在发生的事情以及如何解决它的任何想法?
另外,我在运行 iOS 6 的 iPhone 4S 上进行了尝试。没问题...看起来 iOS 6 让 iPhone 4 的体验很糟糕...