博客
关于我
KxMenu下拉菜单
阅读量:802 次
发布时间:2023-01-29

本文共 4512 字,大约阅读时间需要 15 分钟。

###.iOS 7 下创建动态菜单](#cnblogs_post_body)

在 .iOS 7 下,创建动态菜单是一个常见的任务。以下代码实现了动态菜单的创建逻辑,适用于 .iOS 7 及以上版本。

+ (void)createMenu:(id)sender target:(UIViewController *)t{    NSArray *menuItems =     @[        [KxMenuItem menuItem:@"发送给朋友" image:[UIImage imageNamed:@"menu_weixin"] target:t action:@selector(shareToFriend)],        [KxMenuItem menuItem:@"分享到朋友圈" image:[UIImage imageNamed:@"menu_weixin_circle"] target:t action:@selector(shareToCircle)],        [KxMenuItem menuItem:@"随手摇一摇" image:[UIImage imageNamed:@"menu_shake"] target:t action:@selector(shakeAndShake)],        [KxMenuItem menuItem:@"检查更新" image:[UIImage imageNamed:@"menu_checkupdate"] target:t action:@selector(checkUpdate)],        [KxMenuItem menuItem:@"意见反馈" image:[UIImage imageNamed:@"menu_feedback"] target: t action:@selector(initFeedBack)],        [KxMenuItem menuItem:@"关于闪酷" image:[UIImage imageNamed:@"menu_about"] target:t action:@selector(aboutShanku)],    ];        if (IS_IOS7)    {        menuItems =         @[            [KxMenuItem menuItem:@"发送给朋友" image:[UIImage imageNamed:@"menu_weixin"] target:t action:@selector(shareToFriend)],            [KxMenuItem menuItem:@"分享到朋友圈" image:[UIImage imageNamed:@"menu_weixin_circle"] target:t action:@selector(shareToCircle)],            [KxMenuItem menuItem:@"随手摇一摇" image:[UIImage imageNamed:@"menu_shake"] target:t action:@selector(shakeAndShake)],            [KxMenuItem menuItem:@"随手扫一扫" image:[UIImage imageNamed:@"menu_qrcode"] target:t action:@selector(scanAndScan)],            [KxMenuItem menuItem:@"检查更新" image:[UIImage imageNamed:@"menu_checkupdate"] target:t action:@selector(checkUpdate)],            [KxMenuItem menuItem:@"意见反馈" image:[UIImage imageNamed:@"menu_feedback"] target: t action:@selector(initFeedBack)],            [KxMenuItem menuItem:@"关于闪酷" image:[UIImage imageNamed:@"menu_about"] target:t action:@selector(aboutShanku)],        ];    }        UIView *targetView = (UIView *)[sender performSelector:@selector(view)];    CGRect _rect = targetView.frame;    _rect.origin.y = _rect.origin.y + 30;    CGRect rect = _rect;        [KxMenu showMenuInView: t.navigationController.view fromRect: rect menuItems:menuItems];}

[代码块结束]


shakeToShake 通知处理

当应用程序接收到 shakeToShake 通知时,会触发以下逻辑:

+ (void) shakeToShake: (NSNotification *) notification{    NSDictionary *info = [notification userInfo];    SKShakeViewController *shakeView = [[SKShakeViewController alloc] init];        [[info objectForKey:@"controller"] pushViewController:shakeView animated:YES];}

[代码块结束]


scanAndScan 函数

+ (void) scanAndScan: (NSNotification *) notification{    [self setupCamera: notification];}

[代码块结束]


setupCamera 函数

+ (void) setupCamera: (NSNotification *) notification{    NSDictionary *info = [notification userInfo];        if (IS_IOS7)    {        SKScanViewController *scan = [[SKScanViewController alloc] init];        [[info objectForKey:@"controller"] presentViewController:scan animated:YES completion:^{ }]; // void块            }    else    {        // 为非.iOS 7 版本留空或根据需求实现其他逻辑    }}

[代码块结束]


分享到朋友圈

+ (void) shareToFriendCircle{    SKAppDelegate *AppDelegate = (SKAppDelegate *)[[UIApplication sharedApplication] delegate];    [AppDelegate changeScene:WXSceneTimeline];    [AppDelegate sendLinkContent];        [MobClick event:@"shareToCircle"];}

[代码块结束]


分享到朋友

+ (void) shareToFriend{    SKAppDelegate *AppDelegate = (SKAppDelegate *)[[UIApplication sharedApplication] delegate];    [AppDelegate changeScene:WXSceneSession];    [AppDelegate sendLinkContent];        [MobClick event:@"shareToFriend"];}

[代码块结束]


关于页面

+ (void) aboutShanku: (NSNotification *) notification{    NSDictionary *info = [notification userInfo];    SKAboutViewController *about = [[SKAboutViewController alloc] init];    [[info objectForKey:@"controller"] pushViewController:about animated:YES];}

[代码块结束]


检查更新

+ (void) checkUpdate{    [MobClick checkUpdateWithDelegate:self selector:@selector(isUpdate:)];}+ (void)isUpdate:(NSDictionary *)appInfo{    if ([[appInfo objectForKey:@"update"] isEqualToString:@"NO"])    {        UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"" message:@"已经是最新版本" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:nil, nil];        [alertView show];    }}

[代码块结束]


获取版本号

+ (NSString *) getBundleVersion{    NSString *version = [[[NSBundle mainBundle] infoDictionary] objectForKey:(NSString *)kCFBundleVersionKey];    return version;}

[代码块结束]


以上代码为您提供了一个完整的菜单创建和功能扩展逻辑,适用于 .iOS 7 及以上版本。代码结构清晰,易于维护和扩展。


转载请注明:https://www.cnblogs.com/songxing10000/p/4823651.html

你可能感兴趣的文章
php 身份证号检测
查看>>
PHP 输入输出流合集
查看>>
PHP 过滤器(Filter)
查看>>
php 运算符and or && || 的详解
查看>>
php 返回html字符串长度限制,记一次js中和php中的字符串长度计算截取的终极问题和完美...
查看>>
php 阿里云oss 上传回调
查看>>
PHP 面向对象 final类与final方法
查看>>
php+JQ+EasyUI自动加载数据
查看>>
php+sql server根据自增序号id区间查询第几条到第几条的数据
查看>>
php--------获取当前时间、时间戳
查看>>
Redis使用场景举例
查看>>
php--正则表达式
查看>>
php--防止sql注入的方法
查看>>
PHP-CGI Windows平台远程代码执行漏洞复现(CVE-2024-4577)
查看>>
php-cgi耗尽报502错误
查看>>
php-cgi(fpm-cgi) 进程 CPU 100% 与 file_get_content...
查看>>
PHP-DI/Invoker 开源项目使用教程
查看>>
php-fpm与Nginx运行常见错误说明
查看>>
php-fpm比php成为apache模块好在哪
查看>>
php-fpm超时时间设置request_terminate_timeout分析
查看>>