Iphone 如何使用动画切换视图-objective c
我有一个viewController,它有一个tableView和一个mapView,并且只有一个是可见的。 我还有一个带段控制的工具栏,有两个按钮(列表和地图)Iphone 如何使用动画切换视图-objective c,iphone,objective-c,uiview,uianimation,uiviewanimationtransition,Iphone,Objective C,Uiview,Uianimation,Uiviewanimationtransition,我有一个viewController,它有一个tableView和一个mapView,并且只有一个是可见的。 我还有一个带段控制的工具栏,有两个按钮(列表和地图) 如何在表视图和地图视图之间切换?重要的是,工具栏将保持锁定,而不使用视图设置动画。您可以使用UIView动画转换,传递转换视图的superview: - (IBAction)segmentIndexChanged { BOOL showingMapView = (BOOL)self.segmentedControl.select
如何在表视图和地图视图之间切换?重要的是,工具栏将保持锁定,而不使用视图设置动画。您可以使用
UIView
动画转换,传递转换视图的superview:
- (IBAction)segmentIndexChanged {
BOOL showingMapView = (BOOL)self.segmentedControl.selectedSegmentIndex;
[UIView transitionWithView:self.view
duration:1.0
options:UIViewAnimationOptionTransitionFlipFromLeft
animations:^{
self.mapView.hidden = !showingMapView;
self.tableView.hidden = showingMapView;
} completion:nil];
}
请尝试以下代码以显示表格和地图视图: 在segmentedControlIndexChanged中隐藏mapview和tableview:
- (IBAction)segmentedControlIndexChanged {
switch (self.segmentedControl.selectedSegmentIndex) {
case 0: //it's show tableview
[UIView transitionWithView: self.view
duration:1.0
options:UIViewAnimationOptionTransitionFlipFromLeft
animations:^{
self.mapView.hidden = YES;
self.tableView.hidden = NO; }
completion:nil];
break;
case 1: //it's show mapview
[UIView transitionWithView:self.view
duration:1.0
options:UIViewAnimationOptionTransitionFlipFromLeft
animations:^{
self.mapView.hidden = NO;
self.tableView.hidden = YES; }
completion:nil];
break;
default:
break;
}
}
经过深思熟虑,我找到了一个解决方案,添加另一个视图作为表视图和地图视图的容器视图。
这样我可以做到:
[UIView transitionWithView:self.someContainerView
duration:1.0
options:UIViewAnimationOptionTransitionFlipFromLeft
animations:^{
self.mapView.hidden = !showingMapView;
self.tableView.hidden = showingMapView;
} completion:nil
];
不翻转工具栏谢谢,问题是我的工具栏也在动画中,我想是因为他也是view@Eyal你很可能是说它是一个子视图而不是一个子类,对吗?谢谢,问题是我的工具栏也在动画中,我想,因为他也是视图的一个子类。如果这就是你解决问题的方式,请将其标记为正确答案。如何?当我按下“接受答案复选标记”时,它说我可以在两天内接受我自己的答案。好的,对不起,我忘记了这个限制。只是确定一下!