博客
关于我
KxMenu下拉菜单
阅读量:801 次
发布时间: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

你可能感兴趣的文章
MySQL-数据页的结构
查看>>
MySQL-架构篇
查看>>
MySQL-索引的分类(聚簇索引、二级索引、联合索引)
查看>>
Mysql-触发器及创建触发器失败原因
查看>>
MySQL-连接
查看>>
mysql-递归查询(二)
查看>>
MySQL5.1安装
查看>>
mysql5.5和5.6版本间的坑
查看>>
mysql5.5最简安装教程
查看>>
mysql5.6 TIME,DATETIME,TIMESTAMP
查看>>
mysql5.6.21重置数据库的root密码
查看>>
Mysql5.6主从复制-基于binlog
查看>>
MySQL5.6忘记root密码(win平台)
查看>>
MySQL5.6的Linux安装shell脚本之二进制安装(一)
查看>>
MySQL5.6的zip包安装教程
查看>>
mysql5.7 for windows_MySQL 5.7 for Windows 解压缩版配置安装
查看>>
Webpack 基本环境搭建
查看>>
mysql5.7 安装版 表不能输入汉字解决方案
查看>>
MySQL5.7.18主从复制搭建(一主一从)
查看>>
MySQL5.7.19-win64安装启动
查看>>