当前位置: 首页 > news >正文

暑期学习总结

目录

第一部分 zara+网易云音乐周期

第二部分 3Gshare+学生信息管理系统周期

第三部分 天气预报周期


第一部分 zara+网易云音乐周期

在这个周期,zara类似于预备知识的,在完成zara时,要学会的最重要的两个点就是无限轮播图和自定义cell的使用。这两个点在之后的每个项目中都会用到,必须好好掌握。无限轮播图其实可以通过一些很简单的算法来实现,我的思路是,在现有图片基础上添加两个放图片的位置,最后一个位置放第一张图片,第一个位置放最后一张图片。在此基础上,移动到最后一个位置时,就跳转到第一张图片,当移动到第一个位置时,就跳转到最后一张图片。具体的代码和原理在仿写zara的博客中有描述,这里就不多赘述了。

网易云音乐最主要用到的就是不同控件的堆叠,尤其是数据视图的堆叠,在数据视图上添加带有滚动视图的自定义cell,添加带有数据视图的自定义cell,通过多种视图控件的堆叠来实现复杂的界面效果。在笔者看来,网易云音乐的界面也是暑期项目中最复杂的一个。

此外,在实现网易云音乐时,由于要实现全界面的夜间模式,笔者学习到了一些关于视图控制器生命周期的知识,在视图被呈现在屏幕上时,会有一些函数被依次调用,那么通过这些函数,就可以实现当前视图控制器视图的更新,配合全局变量就可以实现全界面的夜间模式。

下面附上zara和网易云音乐仿写的总结博客链接

zara仿写总结

网易云仿写总结

第二部分 3Gshare+学生信息管理系统周期

3Gshare和学生信息管理系统分别是暑期最繁琐和最简单的两个项目。

关于3Gshare,笔者认为最重要的是,多界面传值的多种应用、保留子视图和动态更新数据视图(折叠cell和聊天室的应用)

在多界面传值的应用上:登录注册需要保存账号和密码,不仅要从前向后传,还要从后向前传,要用到多种传值方式;点赞的状态和点赞量需要前后互相传,也要用到多种传值方式;换头像的功能要实现图片在照片墙与个人信息界面之间的互传,这里只要用到从后向前传的传值方式即可

在保留子视图上:这个点主要是设置界面,关注列表和一些设置的开关的状态需要被保存,通过将当前子视图控制器作为属性就可以在关闭子视图时,不销毁该子视图,从而做到保存子视图的控件状态。

在动态更新数据视图上:最大且最主要的应用就是聊天室,每发送一条信息,就动态地添加一个单元格来保存当前信息。但其实折叠cell也是一种简单的动态更新数据视图思想的应用,就是动态更新数据视图的行数,以此来实现折叠的效果。由于很多界面都是通过数据视图堆叠而成的,所以动态更新数据视图的应用范围非常广泛,需要好好掌握。

学生信息管理系统的实现其实就是一个数据视图,随着数据的增删改查来动态地更新,在学习了动态更新数据视图后非常好解决。此外,笔者在完成学生信息管理系统时,还学习到了一些又关于正则表达式的知识,通过正则表达式,可以非常便捷地实现对各种输入的非法判定。正则表达式的功能非常强大,可以实现对各种集合类的过滤和非法检验,这里更加深入的知识笔者暂时还没有学习,有关于非法判定已经在学生信息管理系统的总结博客中有过阐述。

下面附上3Gshare和学生信息管理系统的总结博客链接

3Gshare总结博客

学生信息管理系统总结

第三部分 天气预报周期

天气预报是暑假的最后一个项目,在笔者看来也是前几个项目知识的集合应用,还加上对新的知识申请网络请求的应用。

天气预报项目需要实现较为复杂的界面,需要一些数据视图的堆叠,还需要进行一些传值操作,以及通过网络请求获取数据。

在这里最需要注意的一个点就是,在进行多个网络请求时,程序会异步执行,因此必须保证数据请求完毕后,再调用数据作为数据源更新数据视图。笔者使用的方法比较简单,就是在更新数据视图前做判断,判断数据是否已全部获取完毕,但这种方法会让代码显得格外冗长,要解决异步问题,还有一种和线程有关的方法,这个笔者暂时还没有学会,之后学习了会再发博客阐述。

下面附上天气预报项目的总结博客链接

天气预报总结

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Android 11添加系统服务,并封装jar包供第三方应用使用
  • Kafka【五】Buffer Cache (缓冲区缓存)、Page Cache (页缓存)和零拷贝技术
  • python与pytroch相关
  • linux 下一跳缓存,early demux(‌早期解复用)‌介绍
  • 探索PDF的奥秘:pdfrw库的神奇之旅
  • 32 配置多路由的静态路由
  • https和harbor仓库跟k8s
  • VsCode + Go + macOS 小白 demo运行
  • 浏览器自动化测试的利器:Cypress
  • AI大模型实战:pytorch安装
  • glsl着色器学习(七)
  • 从源码角度分析 Kotlin by lazy 的实现
  • accelerate一些类和函数说明二
  • 集合及映射
  • linux批量解压tar.gz文件
  • Consul Config 使用Git做版本控制的实现
  • Docker 笔记(2):Dockerfile
  • dva中组件的懒加载
  • fetch 从初识到应用
  • js ES6 求数组的交集,并集,还有差集
  • nginx 负载服务器优化
  • node 版本过低
  • Python_网络编程
  • React Native移动开发实战-3-实现页面间的数据传递
  • Spring Cloud Alibaba迁移指南(一):一行代码从 Hystrix 迁移到 Sentinel
  • Vue ES6 Jade Scss Webpack Gulp
  • 对话:中国为什么有前途/ 写给中国的经济学
  • 简单实现一个textarea自适应高度
  • 普通函数和构造函数的区别
  • 前端技术周刊 2018-12-10:前端自动化测试
  • 人脸识别最新开发经验demo
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • 线性表及其算法(java实现)
  • 移动端解决方案学习记录
  • 浅谈sql中的in与not in,exists与not exists的区别
  • 直播平台建设千万不要忘记流媒体服务器的存在 ...
  • ​Distil-Whisper:比Whisper快6倍,体积小50%的语音识别模型
  • # 利刃出鞘_Tomcat 核心原理解析(二)
  • # 数仓建模:如何构建主题宽表模型?
  • #微信小程序(布局、渲染层基础知识)
  • (1)(1.19) TeraRanger One/EVO测距仪
  • (12)Hive调优——count distinct去重优化
  • (6) 深入探索Python-Pandas库的核心数据结构:DataFrame全面解析
  • (LNMP) How To Install Linux, nginx, MySQL, PHP
  • (Oracle)SQL优化技巧(一):分页查询
  • (多级缓存)多级缓存
  • (二)PySpark3:SparkSQL编程
  • (非本人原创)史记·柴静列传(r4笔记第65天)
  • (附源码)springboot猪场管理系统 毕业设计 160901
  • (附源码)ssm基于jsp高校选课系统 毕业设计 291627
  • (三分钟了解debug)SLAM研究方向-Debug总结
  • (十八)三元表达式和列表解析
  • (一)utf8mb4_general_ci 和 utf8mb4_unicode_ci 适用排序和比较规则场景
  • (一)基于IDEA的JAVA基础1
  • (译)2019年前端性能优化清单 — 下篇