4

我试图模仿可以在 iPhone 上的地图应用程序中找到的部分页面卷曲动画。我可以让它部分卷曲,但工具栏会随着卷曲页面卷曲,这是我不想要的。我只希望屏幕底部的工具栏保持原位,而地图视图本身会卷起。

我在导航控制器视图中有一个地图视图显示。对我来说,如果我从根视图控制器加载这个视图是最有意义的,并且我能够成功,但是,动画没有按预期工作。不是让页面卷曲动画发生,而是从右侧滑动视图,并且我设置的动画发生在视图内部的按钮内。真的很奇怪...我什至尝试过非模态过渡样式并获得相同的确切效果。以下是相关代码:

-(IBAction)displayInfoButtonTapped {
    NSLog(@"ParkingRootViewController displayInfoButtonTapped");
    
    MapInfoView *mapInfoView = [[MapInfoView alloc] initWithNibName:@"MapInfoView" bundle:nil];
    
    
    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:1];
    [UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:mapInfoView.view cache:YES];
    [UIView commitAnimations];  
    
    [self.navigationController pushViewController:mapInfoView animated:YES];
    [mapInfoView release];
    
    [mapView displayInfoButtonTapped];
    
}

有人知道我做错了什么吗?或者有没有人有更好的方法来做我想做的事情?谢谢!

4

2 回答 2

0

你从 UiView 获得的 curl 动画总是全屏的。太糟糕了。对于不同的卷曲效果,你必须用 OpenGL 弄脏你的手。

于 2011-04-25T21:04:23.587 回答
0

我有这个工作,但是通过多个视图并使用动画来删除顶视图,将下视图留在原处。Page Curl 不会触及工具栏。这是我的代码。

[UIView beginAnimations:nil context:NULL];
[self.mapView removeFromSuperview];
[UIView setAnimationDuration:1.5];  
[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.view cache:YES];
[UIView commitAnimations];

所以我的视图控制器有一个 MKMapView 和一个 tableView,地图视图在顶部。当用户点击工具栏上的按钮时,上面的动画会播放,只有 mapView 被卷曲。

希望这是有道理的。

于 2011-11-04T17:15:51.387 回答