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里面一样,这是什么原因呢
  • 相关阅读:
    洛谷P6276 [USACO20OPEN]Exercise P(生成函数)
    牛顿迭代求逆元
    线性基求交
    我卷我自己加强
    AGC013 简要题解
    LOJ#6074 「2017 山东一轮集训 Day6」
    JAVA根据下载地址获取文件的Base64
    JS 作用链,箭头函数 this 取值
    Leetcode 1249 移除无效的括号
    Vue的数据绑定
  • 原文地址:https://www.cnblogs.com/greywolf/p/2586863.html
Copyright © 2011-2022 走看看