您的位置:首页 > 运维架构

(转载)如何实现ipad中googlemap的callout和Popover的动画效果

2012-07-11 19:38 267 查看
具体的效果就是点击callout中的rightCalloutAccessoryView(一个button)后,callout窗口以动画效果缩小,消失后又逐渐展开一个Popover.
我的代码是这样的:

- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView<MKAnnotation> *)view
calloutAccessoryControlTapped:(UIControl *)control {
//[view dismissModalViewControllerAnimated:YES];
NSArray *anns = [[NSArray alloc] initWithArray:[_mapView selectedAnnotations]];
if ([anns count] > 0) {
//[[anns objectAtIndex:0] setSelected:NO animated:YES];
[_mapView deselectAnnotation:[anns objectAtIndex:0] animated:YES];
}
[anns release];
......
cmccDetailController = [[CmccDetailController alloc]initWithNibName:@"CmccDetailController"
bundle:nil];
cmccDetailController.contentSizeForViewInPopover = CGSizeMake(490,200);
detailPopoverController = [[UIPopoverController alloc] initWithContentViewController:cmccDetailController];
// [detailPopoverController setPopoverContentSize:CGSizeMake(400,280)];

[detailPopoverController presentPopoverFromRect:rect
inView:mapView
permittedArrowDirections:UIPopoverArrowDirectionAny
animated:YES];

问题一:为什么[_mapView deselectAnnotation:[anns objectAtIndex:0] animated:YES];与[detailPopoverController presentPopoverFromRect:rect
inView:mapView
permittedArrowDirections:UIPopoverArrowDirectionAny
animated:YES];
的animated参数都为YES了运行起来又没有动画效果?

问题二:如何实现googlemap中callout和popover的动画效果?

先谢谢各位了.

找到了这个 http://www.cocoachina.com/bbs/read.php?tid-11820-fpage-3.html,学习了.
谢谢cocoachina.

解决了,在ContentViewController的viewDidAppear:方法里加入动画即可.
-(void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
self.contentSizeForViewInPopover = CGSizeMake(335, 0);

[UIView beginAnimations:@"animationID" context:nil];
[UIView setAnimationDuration:0.5];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];

[UIView setAnimationRepeatAutoreverses:NO];

CGSize contentSize;
contentSize.width = self.contentSizeForViewInPopover.width;
contentSize.height = 192;
self.contentSizeForViewInPopover = contentSize;
[UIView commitAnimations];

}

我按着您的方法做了一下,点callout的rightCalloutAccessoryView, 展开了一个popover, 这个时候如果进行横屏和竖屏的切换,展开的popover的位置就乱了,而不像google map里面一样,这是什么原因呢

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: