我有一个使用UIViewAnimationOptionTransitionFlipFromLeft在视图之间转换的自定义segue。
当新视图出现在屏幕上时,会有一个短暂但可辨别的'闪烁'由导航栏元素从左对齐状态跳转到其适当位置引起的。以下是在转换结束时捕获的屏幕截图:
您可以看到标题和两个小节按钮项目保持对齐;完全不在他们最终休息的地方。
以下是转换完成后捕获的屏幕截图:
这里按钮和标题正确定位。在第一张图像和第二张图像之间的瞬间,图标闪烁到位。
视图在故事板中设置。该视图不是UINavigationController层次结构的一部分,因此导航栏及其项目是通过属性检查器在模板上手动创建的,模拟指标' - >顶栏:半透明导航栏'。
如何在转换过程中首次出现导航栏项目时强制它们是否正确定位?
提前谢谢! :)
答案 0 :(得分:6)
知道了!我发现在transitionWithView中使用[UIView performWithoutAnimation:^ {}]块解决了这个问题:
[UIView transitionWithView:src.navigationController.view duration:0.2
options:UIViewAnimationOptionTransitionFlipFromLeft
animations:^{
[UIView performWithoutAnimation:^{
[navController setViewControllers:[NSArray arrayWithObject:dst] animated:NO];
}];
}
completion:nil];