iOS AwesomeMenu委派和重叠

时间:2012-10-04 23:54:56

标签: ios menu delegates overlay

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

我对Objective 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)我想写一个当开始菜单动画停止时会触发的委托,这样我就可以在叠加的屏幕上写文字了。有没有一个超级简单的方法来做到这一点,或者我将不得不与一些计时器启动/回调进行猜测并使回调将文本写入我的屏幕?哦 - 我之前从未写过代表,但我认为当我希望它们在动画结束时触发它时会变得有些复杂。

1 个答案:

答案 0 :(得分:1)

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