zoukankan      html  css  js  c++  java
  • (转载)如何实现ipad中googlemap的callout和Popover的动画效果

    具体的效果就是点击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里面一样,这是什么原因呢
  • 相关阅读:
    java多线程编程(一基础概念)
    【转】android程序编译过程
    【转】什么是线程安全和线程不安全
    【转】计算机中时间的表示和存储
    【转】字符编码
    C/C++程序编译流程
    NDK学习笔记-JNI的异常处理与缓存策略
    NDK学习笔记-JNI数据类型和属性方法的访问
    NDK学习笔记-JNI数据类型和属性方法的访问
    NDK学习笔记-JNI开发流程
  • 原文地址:https://www.cnblogs.com/greywolf/p/2586863.html
Copyright © 2011-2022 走看看