暑期学习总结

目录

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

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

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


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

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

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

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

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

zara仿写总结

网易云仿写总结

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

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

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

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

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

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

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

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

3Gshare总结博客

学生信息管理系统总结

第三部分 天气预报周期

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

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

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

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

天气预报总结

相关推荐
气概2 小时前
法奥机器人学习使用
学习·junit·机器人
Qhumaing3 小时前
C++学习:【PTA】数据结构 7-1 实验7-1(最小生成树-Prim算法)
c++·学习·算法
好大哥呀3 小时前
Java Web的学习路径
java·前端·学习
梦雨羊5 小时前
Base-NLP学习
人工智能·学习·自然语言处理
丝斯20115 小时前
AI学习笔记整理(42)——NLP之大规模预训练模型Transformer
人工智能·笔记·学习
小猪佩奇TONY5 小时前
Linux 内核学习(14) --- linux x86-32 虚拟地址空间
linux·学习
副露のmagic6 小时前
更弱智的算法学习 day28
学习
ha20428941946 小时前
Linux操作系统学习记录之---TcpSocket
linux·网络·c++·学习
凉、介7 小时前
深入 QEMU Guest Agent:虚拟机内外通信的隐形纽带
c语言·笔记·学习·嵌入式·虚拟化
崇山峻岭之间7 小时前
Matlab学习记录31
开发语言·学习·matlab