6

我有一个 viewController,它有一个 tableView 和一个 mapView,只有一个是可见的。我还有一个带有两个按钮(列表和地图)的分段控制工具栏

如何在表格视图和地图视图之间切换?重要的是工具栏将保持锁定状态而不使用视图进行动画处理。

4

3 回答 3

10

经过更多思考,我找到了解决方案,添加另一个视图作为表格视图和地图视图的容器视图。
这样我可以做到:

   [UIView transitionWithView:self.someContainerView
                     duration:1.0
                     options:UIViewAnimationOptionTransitionFlipFromLeft 
                     animations:^{
                         self.mapView.hidden   = !showingMapView;
                         self.tableView.hidden = showingMapView;
                     } completion:nil
    ];  

无需翻转工具栏

于 2012-04-21T09:10:18.880 回答
4

您可以使用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];
}
于 2012-04-21T07:42:45.683 回答
1

试试下面的代码显示表和地图视图:

在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;
    }
}
于 2012-04-21T07:42:51.330 回答