我有一个包含tableView和mapView的viewController,但只显示一个。此外还有一个带有两个按钮(列表和地图)的分段控制工具栏。
如何在表格视图和地图视图之间切换?并且很重要的是,工具栏将保持锁定状态而不会随着视图进行动画。
我有一个包含tableView和mapView的viewController,但只显示一个。此外还有一个带有两个按钮(列表和地图)的分段控制工具栏。
如何在表格视图和地图视图之间切换?并且很重要的是,工具栏将保持锁定状态而不会随着视图进行动画。
经过更多的思考,我找到了解决方法,添加另一个视图作为表格视图和地图视图的容器视图。
这样我就能够实现:
[UIView transitionWithView:self.someContainerView
duration:1.0
options:UIViewAnimationOptionTransitionFlipFromLeft
animations:^{
self.mapView.hidden = !showingMapView;
self.tableView.hidden = showingMapView;
} completion:nil
];
不翻转工具栏
UIView
动画过渡,传递过渡视图的父视图:- (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中隐藏地图视图和表格视图:
- (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;
}
}