tableView と mapView を持つ viewController があり、1 つだけが表示されます。2 つのボタン (リストとマップ) を備えたセグメント コントロールを備えたツールバーもあります。
テーブル ビューとマップ ビューを切り替えるにはどうすればよいですか? ビューでアニメーション化せずにツールバーをロックしたままにすることが重要です。
tableView と mapView を持つ viewController があり、1 つだけが表示されます。2 つのボタン (リストとマップ) を備えたセグメント コントロールを備えたツールバーもあります。
テーブル ビューとマップ ビューを切り替えるにはどうすればよいですか? ビューでアニメーション化せずにツールバーをロックしたままにすることが重要です。
解決策を見つけたと考えた後、テーブルビューとマップビューの両方のコンテナビューとして別のビューを追加します。
このように私はすることができます:
[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;
}
}