我最近将我的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的体验变得糟糕......