暑期学习总结

目录

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

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

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


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

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

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

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

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

zara仿写总结

网易云仿写总结

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

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

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

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

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

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

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

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

3Gshare总结博客

学生信息管理系统总结

第三部分 天气预报周期

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

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

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

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

天气预报总结

相关推荐
西岸行者5 天前
学习笔记:SKILLS 能帮助更好的vibe coding
笔记·学习
悠哉悠哉愿意5 天前
【单片机学习笔记】串口、超声波、NE555的同时使用
笔记·单片机·学习
别催小唐敲代码5 天前
嵌入式学习路线
学习
毛小茛5 天前
计算机系统概论——校验码
学习
babe小鑫5 天前
大专经济信息管理专业学习数据分析的必要性
学习·数据挖掘·数据分析
winfreedoms5 天前
ROS2知识大白话
笔记·学习·ros2
在这habit之下5 天前
Linux Virtual Server(LVS)学习总结
linux·学习·lvs
我想我不够好。5 天前
2026.2.25监控学习
学习
im_AMBER5 天前
Leetcode 127 删除有序数组中的重复项 | 删除有序数组中的重复项 II
数据结构·学习·算法·leetcode
CodeJourney_J5 天前
从“Hello World“ 开始 C++
c语言·c++·学习