我将此菜单添加到正在使用的应用程序中:http://mobiledevelopertips.com/open-source/ios-open-source-animated-menu.html

我对目标C相对比较绿色(仅在不到一个月的时间内进行了研究),但我不确定如何执行以下操作:

1)当我按下按钮以打开菜单时,我想在整个屏幕上添加灰色覆盖。我一直在寻找解决方案,但很多人似乎都推荐DSActivityView,它对我不起作用...我不需要那个加载泡沫。我想我可以下载源代码并删除气泡,但是这可能需要更多的努力,而不是值得的。

我想我可以实例化一个imageView,将其放到0,0并将其扩展到屏幕的边界,并以透明的灰色PNG文件作为源...

CGRect screenRect = [[UIScreen mainScreen] bounds];
CGFloat screenWidth = screenRect.size.width;
CGFloat screenHeight = screenRect.size.height;

imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"transparent_gray.png"]];
imageView.frame= CGRectMake (0,0,screenWidth,screenHeight);
[viewController addSubview:imageView];


但是,这种方法可能行不通(我猜它不会涵盖导航栏,如选项卡栏和状态栏)。此外,我不确定如何从AwesomeMenu中访问viewController。我认为我必须将实例化AwesomeMenu的viewController的引用传递到AwesomeMenu的功能之一中,以便能够将imageView部署到viewController中?

2)我想编写一个在打开菜单动画停止时将触发的委托,以便可以将文本写到覆盖屏幕上。有没有一种超级简单的方法来执行此操作,或者我是否只需要对一些计时器启动/回调进行留言,并使回调将文本写到我的屏幕上?哦-我以前从未写过委托,但是我想让他们在动画结束时触发它会变得有些复杂。

最佳答案

嗯,我认为您对UIKit的工作方式有一些先入为主的观念。对于1),我建议在SO中搜索“ View Cover Screen”,以更好地理解该问题,尤其是与View动画相关的问题。其次,有很多方法可以完成您的2)项目。如果您有AwesomeMenu的源代码,则可以修改它执行的任何动画。如果动画是用animateWithDuration:animations:完成的,则只需添加一个completion:块。如果需要从多个位置制作完成动画,则可以考虑委托。您可能可以为AwesomeMenu编写类别以添加功能。在您的情况下,我认为您只需要简单的代码修改即可。但是,如果没有更多的代码/事实,很难说出来。

10-01 20:31