11----MMDrawerConcroller的简单使用

本文介绍了如何使用MMDrawerController框架来实现iOS应用中的侧滑菜单功能。通过从故事板加载不同控制器并配置框架参数,可以轻松实现具有自定义动画效果的侧滑菜单。


    学习的时间总是过得很快,虽然每一天的起床都很煎熬,但到教室后一天很快就过去了。时间越来越少,会的东西也越来越多,进入项目二的学习后,接触的第三方框架也越来越多,比如像项目二的大框架就是一个MMDrawerController,创建代码如下

- (void)viewDidLoad {

    [super viewDidLoad];

    // Do any additional setup after loading the view.

    

    self.view.backgroundColor = [UIColor clearColor];

    

    //从故事板(storybord)中获取控制器对象

    UIStoryboard *storybord = [UIStoryboard storyboardWithName:@"Main" bundle:nil];

    

    [[NSNotificationCenter defaultCenter]addObserver:selfselector:@selector(_setAnimation) name:kStyleNotification object:nil];

    

    //设置左边的控制器

    self.leftDrawerViewController = [storybord instantiateViewControllerWithIdentifier:@"LeftVC"];

    

    //设置中间的控制器

    self.centerViewController = [storybord instantiateViewControllerWithIdentifier:@"CenterVC"];

    

    //设置右边的控制器

    self.rightDrawerViewController = [storybord instantiateViewControllerWithIdentifier:@"RightVC"];

    

    //设置阴影

    [self setShowsShadow:YES];

    

    //设置两边的宽度

    [self setMaximumLeftDrawerWidth:160.0];

    [self setMaximumRightDrawerWidth:60.0];

    

    //设置手势的作用区域

    [self setOpenDrawerGestureModeMask:MMOpenDrawerGestureModeAll];

    [self setCloseDrawerGestureModeMask:MMCloseDrawerGestureModeAll];

    

    //配置动画的回调函数

    [self setDrawerVisualStateBlock:^(MMDrawerController *drawerController, MMDrawerSide drawerSide, CGFloat percentVisible) {

        MMDrawerControllerDrawerVisualStateBlock block;

        block = [[MMExampleDrawerVisualStateManagersharedManager]drawerVisualStateBlockForDrawerSide:drawerSide];

        if (block) {

            block(drawerController,drawerSide,percentVisible);

        }

        

    }];

 

    //设置动画

    

    [self _setAnimation];

    

    

}

//设置动画

- (void)_setAnimation

{

    //从数据中拿到选中的样式

    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

    NSInteger style = [[defaults objectForKey:kAnimationStyle]integerValue];

    //根据样式的枚举值设置动画

    [[MMExampleDrawerVisualStateManager sharedManager] setLeftDrawerAnimationType:style];

    [[MMExampleDrawerVisualStateManager sharedManager] setRightDrawerAnimationType:style];

}


    学习的时间总是过得很快,虽然每一天的起床都很煎熬,但到教室后一天很快就过去了。时间越来越少,会的东西也越来越多,进入项目二的学习后,接触的第三方框架也越来越多,比如像项目二的大框架就是一个MMDrawerController,创建代码如下

- (void)viewDidLoad {

    [super viewDidLoad];

    // Do any additional setup after loading the view.

    

    self.view.backgroundColor = [UIColor clearColor];

    

    //从故事板(storybord)中获取控制器对象

    UIStoryboard *storybord = [UIStoryboard storyboardWithName:@"Main" bundle:nil];

    

    [[NSNotificationCenter defaultCenter]addObserver:selfselector:@selector(_setAnimation) name:kStyleNotification object:nil];

    

    //设置左边的控制器

    self.leftDrawerViewController = [storybord instantiateViewControllerWithIdentifier:@"LeftVC"];

    

    //设置中间的控制器

    self.centerViewController = [storybord instantiateViewControllerWithIdentifier:@"CenterVC"];

    

    //设置右边的控制器

    self.rightDrawerViewController = [storybord instantiateViewControllerWithIdentifier:@"RightVC"];

    

    //设置阴影

    [self setShowsShadow:YES];

    

    //设置两边的宽度

    [self setMaximumLeftDrawerWidth:160.0];

    [self setMaximumRightDrawerWidth:60.0];

    

    //设置手势的作用区域

    [self setOpenDrawerGestureModeMask:MMOpenDrawerGestureModeAll];

    [self setCloseDrawerGestureModeMask:MMCloseDrawerGestureModeAll];

    

    //配置动画的回调函数

    [self setDrawerVisualStateBlock:^(MMDrawerController *drawerController, MMDrawerSide drawerSide, CGFloat percentVisible) {

        MMDrawerControllerDrawerVisualStateBlock block;

        block = [[MMExampleDrawerVisualStateManagersharedManager]drawerVisualStateBlockForDrawerSide:drawerSide];

        if (block) {

            block(drawerController,drawerSide,percentVisible);

        }

        

    }];

 

    //设置动画

    

    [self _setAnimation];

    

    

}

//设置动画

- (void)_setAnimation

{

    //从数据中拿到选中的样式

    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

    NSInteger style = [[defaults objectForKey:kAnimationStyle]integerValue];

    //根据样式的枚举值设置动画

    [[MMExampleDrawerVisualStateManager sharedManager] setLeftDrawerAnimationType:style];

    [[MMExampleDrawerVisualStateManager sharedManager] setRightDrawerAnimationType:style];

}


内容概要:本文档为集成系统平台通用验收方案的经典模板,系统阐述了项目验收的全过程,涵盖验收前提、标准、初步验收、上线试运行及最终验收等关键环节。重点包括验收准备、文档整理、售后服务交接、技术文档移交、上线切换与运行维护、问题处理机制以及项目总结与验收评审等内容,确保系统在功能、性能、稳定性等方面满足合同和技术要求,并实现平稳过渡与长期稳定运行。文档强调交付物完整性、多方协作及后续支持机制,保障项目顺利收尾并进入质保期。; 适合人群:从事系统集成、软件实施、项目管理及相关技术支持工作的专业人员,尤其是参与政府或企业信息化建设项目的技术负责人、项目经理、运维人员及验收评审人员。; 使用场景及目标:①用于指导大型信息系统建设项目在部署后的验收流程设计与执行;②帮助项目团队规范交付文档、理清验收步骤、落实售后服务衔接;③支撑甲乙双方依据合同和标准完成上线试运行、初步验收和最终验收,确保项目合规闭环。; 阅读建议:此模板具有较强的实务性和可操作性,使用者应结合具体项目背景进行裁剪和补充,重点关注验收标准、文档清单和服务交接机制,在实际应用中同步完善问题台账、运维手册和培训记录,提升项目交付质量与客户满意度。
**卷积序列嵌入推荐模型(Caser)的Matlab实现解析** 卷积神经网络在序列数据处理中展现出卓越性能,尤其在时间序列分析与自然语言处理领域。Caser模型将卷积神经网络技术引入推荐系统,通过卷积运算提取用户历史行为中的潜在模式,从而为个性化推荐提供更为精准的上下文依据。 **模型结构解析** 1. **架构设计**:Caser模型整合了水平与垂直两个卷积模块。水平卷积模块侧重于捕捉用户的近期偏好,垂直卷积模块则致力于挖掘其长期兴趣倾向。两者协同工作,构建出完整的用户兴趣表征。 2. **序列嵌入表示**:用户的历史交互记录被转换为固定长度与维度的嵌入向量序列。这些向量能够有效编码项目的特性,并通过卷积运算学习特性间的关联规律。 3. **卷积运算层**:该层利用多种尺寸的滤波器对嵌入序列进行扫描,以提取不同范围的兴趣特征。水平卷积沿时间维度滑动,垂直卷积则在嵌入向量的特征维度上进行操作。 4. **特征降维层**:采用池化操作(如最大值池化或均值池化)压缩特征维度,在减少计算负担的同时保留关键信息,以概括全局兴趣模式。 5. **预测层与优化目标**:卷积特征经全连接层映射为预测分值。训练过程中常使用均方误差或交叉熵作为损失函数,通过优化模型参数缩小预测值与实际交互间的差异。 6. **模型训练与性能验证**:采用反向传播算法迭代更新权重,以最小化损失函数。评估阶段可通过准确率、召回率及曲线下面积等指标量化推荐效果的优劣。 **Matlab环境下的实现要点** 1. **代码组织**:实现代码通常包含数据预处理、模型构建、训练流程、预测功能及评估模块,并以结构化脚本或函数形式呈现。 2. **数据准备**:将原始数据加载为矩阵或结构数组,并进行归一化、缺失值填补等预处理,使其符合模型输入规范。 3. **网络搭建**:借助Matlab深度学习工具箱,可便捷地定义卷积层、池化层与全连接层,构建完整的卷积神经网络架构。 4. **训练过程配置**:使用内置训练函数设置优化器、学习速率及批处理规模等参数,并可引入正则化方法抑制过拟合现象。 5. **结果生成与模型检验**:训练结束后调用预测函数输出推荐评分,并依据预设指标综合分析模型性能。 6. **参数调优与实验设计**:通过调整滤波器尺寸、网络深度、学习速率等超参数,探索最优模型配置方案。 **结论** 基于Matlab实现的Caser模型充分发挥了其在数值计算方面的优势,成功将卷积神经网络应用于推荐系统,显著提升了推荐精度与用户满意度。该实现为致力于推荐系统或卷积神经网络应用研究的开发者提供了重要的实践参考,通过代码学习与修改,可进一步深化对模型机理的理解,并将其适配于多样化的推荐场景中。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
电力负荷预测作为能源管理的关键环节,直接关系到电力系统的稳定运行与资源优化配置。灰色模型(Grey Model,GM)作为一种适用于小样本、非线性及信息不完整数据序列的预测方法,在电力负荷预测领域得到了广泛应用。本项目“Grey-Model-master”基于灰色模型实现了电力负荷预测的完整代码,具备可运行性,旨在帮助用户理解并应用灰色模型进行实际预测。 灰色系统理论由邓聚龙教授于1982年提出,其核心思想是通过对部分已知信息的数据序列进行建模,揭示数据中隐含的内在规律。灰色模型的基本步骤包括:构建原始数据序列、生成一次累加序列、建立微分方程模型、求解模型参数以及进行模型检验与调整。 电力负荷预测旨在预估未来特定时段内电力系统的需求电量,是电力系统规划、调度与运营的基础。准确的预测有助于降低电网运行风险,提升电力设备利用效率,并优化发电资源配置。 在电力负荷预测中,由于负荷数据通常呈现趋势性、季节性和随机性特征,灰色模型能够有效捕捉这些规律。通过构建GM(1,1)模型(即最简单的灰色模型),可以对电力负荷时间序列进行非线性拟合,从而获得未来负荷的预测值。 本项目代码实现主要包括以下环节:数据预处理(清洗与整理原始负荷数据)、建立灰色模型(生成一次累加序列并构造微分方程)、求解模型参数(采用最小二乘法或差分方程解法)、执行预测过程、进行模型检验(通过残差分析、自相关函数与偏自相关函数等统计方法评估模型适应性),以及结果可视化(展示原始数据与预测结果的对比图)。 尽管灰色模型具有简单易用的优点,但在数据波动较大或趋势复杂时可能表现不足。为提升预测精度,可考虑结合其他预测方法(如ARIMA、神经网络等)进行集成学习,或通过改进灰色模型(如引入多变量灰色模型、二次累加序列等)以增强其复杂性与适应性。 在实际应用中,电力公司定期开展负荷预测,以制定发电计划、调度策略及应急措施。本项目提供的代码与模型可作为学习与实践的模板,协助研究人员或工程师快速掌握电力负荷预测的基本方法,从而为电力系统的高效运行提供支持。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值