我有一个 viewController,它有一个 tableView 和一个 mapView,只有一个是可见的。我还有一个带有两个按钮(列表和地图)的分段控制工具栏
如何在表格视图和地图视图之间切换?重要的是工具栏将保持锁定状态而不使用视图进行动画处理。
我有一个 viewController,它有一个 tableView 和一个 mapView,只有一个是可见的。我还有一个带有两个按钮(列表和地图)的分段控制工具栏
如何在表格视图和地图视图之间切换?重要的是工具栏将保持锁定状态而不使用视图进行动画处理。
经过更多思考,我找到了解决方案,添加另一个视图作为表格视图和地图视图的容器视图。
这样我可以做到:
[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中隐藏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;
}
}