【QQ案例-QQ框架-主流框架 Objective-C语言】

news2024/11/17 23:30:53

一、接下来,我们来做一下这个QQ,

通知

1.接下来,我们来做一下这个QQ,

通知

QQ框架啊,

这个东西呢,我们管它叫做“主流框架”,

首先呢,要告诉大家一点,这个东西呢,我们管它,叫做“主流框架”,

算是一个简称啊,

只能说,这种框架的类型,上边儿带navigation,下边儿带tabbar,

只能说,这种框架,叫做一个“主流”,并不意味着所说的“主流框架”,

就一定是这一种,

也就是说,这个东西呢,我们只是为了在上课时方便,我们管这个框架,叫做“主流框架”,

实际上,在这个里边儿,只能说这种框架,是一个“主流”,但是,并不意味着,所有的“主流框架”,一定是它,

好,什么东西,是“主流”,

比如说,我们点击左边儿,可能会有某一个按钮,会有一个侧滑的菜单儿出来,

这些东西,也都算是一个主流,并不意味着,主流框架一定是某一种类型的东西,

2.我们来做这个框架啊,上边儿,

通知

上边儿,是有这个navigation的,

下边儿,是有这个tabbar的,

是有这么两个东西的啊,

然后,上边儿的这个navigation的这一块儿,

上边儿的这个navigation,我们直接来看这个页面儿啊,都有哪些东西,

上边儿是navigation,

下边儿是tabbar,

通知

然后呢,联系人页面,是这样的,

然后呢,每一个页面呢,

通知

第三个,“动态”页面,是这个样子的,

通知

第三个,“设置”页面,是这个样子的,

然后呢,页面,上边儿都是有navigation的,

然后,下边儿这一块儿,还都是tabbar,

都可以去进行点击,

然后,这个页面呢,“消息”,这个页面,

中间儿的这一块儿啊,就是一个普通的View Controller,

通知

然后呢,右边儿这一块儿,有一个按钮,有一个navigation的一个item

然后呢,你在这儿点它(这个灯泡),实际上,是没有反应的啊,

这是一张图片,

好,然后呢,这是一个“消息”的界面儿,就是这个样子的,我只是搭框架啊,

然后呢,这个“联系人”界面,

通知

3.联系人,这个里边儿,

1)上边儿,这一块儿,这是个啥,

通知

不要看这个控件是什么名字,要看这个位置,设置谁,能设置到上边儿这一块儿,

title?title不是文字吗,

titleView,啊,上边儿,这一块儿,是一个titleView啊,

当然,storyboard,直接一拖,就可以了,

这是一个叫做UISegmentControl,一个控件儿,

2)然后呢,接下来,右边儿是一个,也是一个navigationItem,

通知

这个“人加一个加号”,的按钮,然后呢,点一下它,

通知

会push过来一个界面儿,

它会push过来一个页面儿,

然后,这个页面儿呢,下面儿,是没有tabbar的,

当我一push,这个tabbar是被隐藏了,

这个操作,怎么着,在storyboard中去做,

去做一下,

然后呢,这个页面儿,就是一个,

通知

就是一个静态的tableView,

静态的单元格儿,这里边儿,也是没有东西的,

通知

这是一个大概的框架啊,

3)接下来,是这个“动态”,

通知

“动态”,这个页面儿,这个页面儿里边儿啊,它也是一个静态的单元格

这里边儿,也没有功能,

就是一个静态的一个tableView,一个单元格,啊

然后,上边儿,就是一个“动态”,俩字儿,

通知

4)然后呢,“设置”里边儿,

这个里边儿,也是“静态的单元格”,

好,然后呢,在这一块儿,

通知

在这一块儿啊,有一个“关于QQ”啊,它是可以点击的,点一下它,

通知

点一下,进入“关于QQ”页面儿,

通知

它也会push到一个新的页面儿,

当然,这个页面儿,也是一个“静态的单元格”,

请问,这个页面儿,是“组的样式”,还是“Plain的样式”,

是“组的样式”吗,这个,

通知

你感觉啊,感觉好像,“组的样式”,上边儿,会有一个空行,一样,

然后,这个里边儿,好像上边儿,没有这个空行,

通知

教给大家一个方法啊,用系统默认的而言,

如何去看一个东西,是不是“组的样式”,

去看“背景颜色”,

不要看上边儿,

如果背景颜色,是这种“灰不拉鸡”的啊,

通知

这个东西,就是“组的样式”,

上边儿为什么没有,是因为上边儿QQ这是一个图片,这是一个HeaderView,

好,tableView,设置了headerView,它上边儿是没有那一行空行的,

就系统默认的而言,

怎么着去分辨“组的样式”,看背景颜色,

如果“背景颜色”,是这种“灰不拉鸡”的颜色,那就是“组的样式”,

或者说,看那个,如果我们是这种,不是“组的样式”啊,

通知

如果我们不是“组的样式”啊,它都是会有这种黑色的线的,

都有“黑色的线”,而且,它的这个背景颜色啊,它实际上是白色的,

这就是Plain的样式,

然后呢,这种,带这种“灰色”空行的样式,实际上,就是一种Grouped样式

通知

这是一个大概的一个框架啊,

2.那么,简单的介绍完需求以后,我们来分析一下,

首先,有navigation,

通知

下边儿,有tabbar,

这两个呢,都是专门儿用来管理控制器的控制器,

那么,这里边儿,就涉及到一个“嵌套”的问题了,

1)也就是说,你的tabbar,是被你的navigation管理了,然后,中间的这些内容,都添加到tabbar里边儿,

2)还是说,这个tabbar管理了这个navigation,然后,navigation里边儿,有一个那个,

画个图,

也就是说啊,我们肯定是有一个“箭头所指向的控制器”,

那么,箭头,指向的,是

通知

1)tabbar,然后呢,tabbar里面儿,又分为navigation,

通知

2)然后呢,navigation后边儿,又分为,什么tableView啊,

通知

又分为,什么tableView啊,之类的啊,

通知

tableView,

通知

是这种形式的,还是,

通知

还是说,箭头儿所指向的,先是一个navigation,

通知

navigation里边儿,又有一个tabbar,

通知

tabba

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1479237.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux centos 变更MySQL数据存储路径

Linux centos 变更MySQL数据存储路径 登录mysql,查看数据存储路径创建新目录准备迁移数据检查是否配置成功 登录mysql,查看数据存储路径 mysql -u root -pshow global variables like "%datadir%";创建新目录 查看磁盘空间 df -h选取最大磁…

论文阅读:2015ResNet深度残差网络(待补充)

top5错误率:每张图片算法都会给出它认为最可能的五个类别,五个里面有一个是正确则算法预测正确。 技术爆炸1:2012年,DL和CNN用于CV;技术爆炸2:2015年,超过人类水平,网络可以更深&…

Unity-PDF分割器(iTextSharp)

PDF分割器 Unity-PDF分割器前言核心思路解决过程一、Unity安装iTextSharp二、运行时计算将要生成文件的大小三、分割核心代码四、使用StandaloneFileBrowser五、其他的一些脚本六、游戏界面主体的构建MainWindowWarningPanel & FinishPanel By-Round Moon Unity-PDF分割器 …

Vue3 在SCSS中使用v-bind

template 先创建一个通用的页面结构 <template><div class"v-bubble-bg"></div> </template>js 在JS中先对需要用的数据进行定义&#xff1a; 可以是参数&#xff0c;也可以是data <script setup>const props defineProps({bgCol…

Linux零基础快速入门

Linux的诞生 Linux创始人:林纳斯 托瓦兹 Linux 诞生于1991年&#xff0c;作者上大学期间 因为创始人在上大学期间经常需要浏览新闻和处理邮件&#xff0c;发现现有的操作系统不好用,于是他决心自己写一个保护模式下的操作系统&#xff0c;这就是Linux的原型&#xff0c;当时他…

【笔记】:更方便的将一个List中的数据传入另一个List中,避免多重循环

这里是 simpleInfoList 集合&#xff0c;记为集合A&#xff08;传值对象&#xff09; List<CourseSimpleInfoDTO> simpleInfoList courseClient.getSimpleInfoList(courseIds);if(simpleInfoListnull){throw new BizIllegalException("当前课程不存在!");}这…

[Flutter]TextButton自定义样式

在Flutter中&#xff0c;TextButton是一个简单的文本按钮&#xff0c;它遵循当前的Theme。如果你想要修改TextButton的样式&#xff0c;可以通过设置其style属性来实现&#xff0c;该属性接收一个ButtonStyle对象。 给TextButton和里面Text添加背景后&#xff0c;效果如下。可…

设计模式(二)单例模式

单例模式&#xff1a;确保一个类只有一个实例&#xff0c;并提供了全局访问点&#xff1b;主要是用于控制共享资源的访问&#xff1b; 单例模式的实现分为懒汉式和饿汉式。 懒汉式单例在需要时才会创建&#xff0c;而饿汉式单例则在类加载时立即创建实例&#xff1b; 单例模…

【精准获客,优化体验】Xinstall助力企业提升App渠道效果与用户满意度

在数字化时代&#xff0c;企业对于用户体验的重视程度日益提升。为了更好地满足用户需求&#xff0c;提供个性化、专属化的服务已经成为企业竞争的关键。今天&#xff0c;我们将向大家介绍一款名为Xinstall的一站式App全渠道统计服务商&#xff0c;它凭借强大的技术实力和丰富的…

【测试开发面试复习(一)】计算机网络:计算机网络体系结构(P1)补充ing

我每次复习的第一趴都是网络。。 一、高频面试题记录 1.1 计算机网络为什么要分层&#xff1f; 网络庞大而且复杂&#xff08;大量的软硬件系统、大量的程序和协议等&#xff09;&#xff0c;分层可提高整体结构的灵活性、将层次之间结构解耦&#xff0c;各层相互独立、隔离&…

轻松三步制作电子签名

一、在纸上签名&#xff0c;并且拍照。 二、新建空白word文档&#xff0c;使用WPS方式打开&#xff0c;再将图片复制进来。 三、点击图片&#xff0c;先选择【图片工具】中的【设置透明色】&#xff0c;然后点击签名之外的图片背景&#xff0c;即可制作为矢量图&#xff1b…

Redis 面试指南:常见问题及最佳答案

Redis 是一个高性能的键值存储系统&#xff0c;已经成为了许多企业和互联网公司的核心技术之一。本文将总结 Redis 面试中常见的问题&#xff0c;并提供最佳答案&#xff0c;以帮助读者更好地准备 Redis 面试。 引言&#xff1a; Redis 是一个开源、高性能、键值存储系统&…

朴素贝叶斯(带你从原理到实践)

目录 一、引言 二、朴素贝叶斯算法原理 1 贝叶斯定理 2 特征条件独立假设 3 分类过程 三、实践事例 四、朴素贝叶斯算法应用 1 文本分类 2 垃圾邮件过滤 3 情感分析 五、朴素贝叶斯算法未来发展 1 特征选择优化 2 半监督学习与无监督学习 3 结合深度学习 4 处理…

vue中动态引入图片

分析 很多时间&#xff0c;不管是vue2&#xff0c;还是vue3开发中都会遇到&#xff0c;动态渲染图片的功能&#xff0c;但是为什么我们直接将图片的路径直接赋值给变量的时候&#xff0c;图片渲染不出来&#xff0c;而通过require引入加载图片后却能正常渲染呢&#xff1f;主要…

数仓开发环境链接

这里写目录标题 1开发工具链接大数据组件1.1 启动hiveserver21.2配置DataGrip连接1.3测试使用 2 环境问题排查思路 1开发工具链接大数据组件 1.1 启动hiveserver2 数仓开发工具datagrip 需要用到JDBC协议链接到Hive&#xff0c;需要启动hiveserver2。 cd /opt/module/hive h…

PHP项目中composer和Git的组合使用

highlight: 在国内由于众所周知的原因&#xff0c;composer的package可能无法访问&#xff0c;解决办法是使用中国的全镜像&#xff1a; composer config -g repositories.packagist composer http://packagist.phpcomposer.com 在需要使用composer package的地方创建composer…

算法沉淀——动态规划之两个数组的 dp(上)(leetcode真题剖析)

算法沉淀——动态规划之两个数组的 dp 01.最长公共子序列02.不相交的线03.不同的子序列04.通配符匹配 01.最长公共子序列 题目链接&#xff1a;https://leetcode.cn/problems/longest-common-subsequence/ 给定两个字符串 text1 和 text2&#xff0c;返回这两个字符串的最长 …

ADS-B Ground Receiver Radarcape

目录 Radarcape ADS-B MLAT Receiver Web Browser User Interface Radarcape Technical Data Radarcape Software Features Radarcape Basics Radarcape ADS-B MLAT Receiver Radarcape is a professional ADS-B receiver made for 24/7 operation. High performance rec…

2.29作业

T课上实现通信代码总结&#xff1a; 程序代码&#xff1a; TCPSER.c #include<myhead.h> #define SER_IP "192.168.244.140" //服务器IP #define SER_PORT 9999 //服务器端口号 int main(int argc, const char *argv[]) {//1.创建用于监…

踩坑之MysqlClient 安装

本以为就简单的 pip 就安装上了结果 报错 error: Microsoft Visual C 14.0 or greater is required. Get it with "Microsoft C Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/ 报错这个 让我下载 我也下载了可能没重启问题 再次安装还…