我正在UIViewController
内的地图和列表视图之间进行"标准"切换,导航栏在顶部,有一个按钮可以在地图显示和列表之间切换。我正在使用以下方法执行转换:
[UIView transitionFromView:self.tableView
toView:self.mapView
duration:1
options:UIViewAnimationOptionTransitionFlipFromLeft
completion:nil];
但完成后,"from view"为零,再切换一次后,两个视图都为零。有没有其他方法可以在视图之间切换并保持两者都在?然后,我不必在显示时再次填充和初始化它们。每次用户翻转时,对一个有很多引脚的地图这样做有点糟糕。
来自文档:
从视图
转换的起始视图。默认情况下,此视图作为转换的一部分从其超视图中删除。
to查看
过渡的结束视图。默认情况下,此视图会添加到fromView的superview作为转换的一部分。
讨论
此方法提供了从fromView参数中的视图到toView参数中视图。通过默认情况下,fromView中的视图在视图层次结构中被在to view中查看如果两个视图都已经是视图层次结构的一部分,可以包括UIViewAnimationOptionShowHideTransitionViewsoptions参数中的选项,以简单地隐藏或显示它们。
因此,如果您还没有将这两个视图都作为视图层次结构的一部分,为什么不提前添加它们呢?您可以在tableView
下面插入mapview
作为子视图(因此一开始不会显示),然后使用UIViewAnimationOptionShowHideTransitionViews
和UIViewAnimationOptionTransitionFlipFromLeft
作为选项调用转换。