UIPopoverController没有动画效果

9

我有一个iPad应用程序,其中嵌入了一个MKMapViewUINavigationController中,并且在UITabBar中显示。我正在地图上显示一个弹出控制器。

UIPopoverController *myPopoverController =
    [[[UIPopoverController alloc] initWithContentViewController:myContentView]
     autorelease];

[myPopoverController presentPopoverFromRect:myRect
                                     inView:mapView
                   permittedArrowDirections:UIPopoverArrowDirectionAny
                                   animated:YES];

弹出框可以正常显示,但是它没有漂亮的动画效果:它只是立即出现在屏幕上。同样的,当我将其关闭时,它也没有任何动画效果,直接消失。

有人知道我如何让动画起作用吗?我应该尝试从另一个视图中显示它吗?我可能忽略了某些属性设置吗?

2个回答

11
尽管有“animated:(BOOL)”参数,但似乎弹出窗口在显示时永远不会动画。我已经尝试了十几个第一方和第三方应用程序。
然而,如果您向“dismissPopoverAnimated:(BOOL)”传递“YES”,则弹出窗口的消失应该会动画化。

1
假设您的弹出视图在地图视图之外进行动画处理,我建议将地图视图放置到一个容器视图中,该容器视图的框架大小与地图视图相同。从那里开始,在容器视图中呈现弹出视图就很简单了。
根据苹果的文档,MKMapView不应该被子类化,因此像UIWebView一样,它似乎是那些最好不要触碰其内部实现的视图之一。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接