6

tableView と mapView を持つ viewController があり、1 つだけが表示されます。2 つのボタン (リストとマップ) を備えたセグメント コントロールを備えたツールバーもあります。

テーブル ビューとマップ ビューを切り替えるにはどうすればよいですか? ビューでアニメーション化せずにツールバーをロックしたままにすることが重要です。

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 に答える