暑期学习总结

目录

[第一部分 zara+网易云音乐周期](#第一部分 zara+网易云音乐周期)

[第二部分 3Gshare+学生信息管理系统周期](#第二部分 3Gshare+学生信息管理系统周期)

[第三部分 天气预报周期](#第三部分 天气预报周期)


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

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

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

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

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

zara仿写总结

网易云仿写总结

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

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

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

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

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

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

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

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

3Gshare总结博客

学生信息管理系统总结

第三部分 天气预报周期

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

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

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

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

天气预报总结

相关推荐
CV学术叫叫兽15 分钟前
一站式学习:害虫识别与分类图像分割
学习·分类·数据挖掘
我们的五年26 分钟前
【Linux课程学习】:进程程序替换,execl,execv,execlp,execvp,execve,execle,execvpe函数
linux·c++·学习
一棵开花的树,枝芽无限靠近你1 小时前
【PPTist】添加PPT模版
前端·学习·编辑器·html
VertexGeek1 小时前
Rust学习(八):异常处理和宏编程:
学习·算法·rust
二进制_博客2 小时前
Flink学习连载文章4-flink中的各种转换操作
大数据·学习·flink
codebolt2 小时前
ADS学习记录
学习
Komorebi.py3 小时前
【Linux】-学习笔记05
linux·笔记·学习
朝九晚五ฺ11 小时前
【Linux探索学习】第十四弹——进程优先级:深入理解操作系统中的进程优先级
linux·运维·学习
猫爪笔记12 小时前
前端:HTML (学习笔记)【1】
前端·笔记·学习·html
pq113_613 小时前
ftdi_sio应用学习笔记 3 - GPIO
笔记·学习·ftdi_sio