2-读书笔记----iOS开发指南:从零基础到App Store上架--iOS视图和控件

本文详细介绍了iOS应用界面的构建层次、视图分类、关键控件、屏幕布局及复杂控件选择器的使用方法,并探讨了iOS6中集合视图的功能特性,旨在为开发者提供全面的界面设计指南。

视图和控件

UIView“家族”

UIView类的继承层次



应用界面的构建层次

iOS应用界面是由若干个视图构建而成的,这些视图对象采用树形构建



视图分类

为了便于开发,苹果将UIKit框架中的视图分成以下几个类别。

控件。继承自UIControl类,能够响应用户高级事件。

窗口。它是UIWindow对象。一个iOS应用只有一个UIWindow对象,它是所有子视图的“根”容器。

容器视图。它包括了UIScrollViewUIToolbar以及它们的子类。UIScrollView的子类有UITextView

UITableViewUICollectionView,在内容超出屏幕时,它们可以提供水平或垂直滚动条。UIToolbar

   是非常特殊的容器,它能够包含其他控件,一般置于屏幕底部,特殊情况下也可以置于屏幕顶部。

显示视图。用于显示信息,包括UIImageViewUILabelUIProgressViewUIActivityIndicator-

View等。

文本和Web视图。提供了能够显示多行文本的视图,包括UITextViewUIWebView,其中UITextView

也属于容器视图,UIWebView是能够加载和显示HTML代码的视图。导航视图。为用户提供从一个屏幕到另外一个屏幕的导航(或跳转)视图,它包括UITabBar

UINavigationBar

警告框和操作表。用于给用户提供一种反馈或者与用户进行交互。UIAlertView视图是一个警告框,它

会以动画形式弹出来;而UIActionSheet视图给用户提供可选的操作,它会从屏幕底部滑出。


动作是为了响应一个控件的事件而定义的方法,返回值类型为IBAction



关闭和打开键盘的通知

在关闭和打开键盘时,iOS系统分别会发出如下广播通知:UIKeyboardDidHideNotificationUIKeyboardDidShowNotification

使用广播通知的时候需要注意在合适的时机注册和解除通知


屏幕滚动控件 ScrollView

ScrollView的属性有很多,但最为重要的就是与显示相关的属性:contentSizecontentInsetcontentOffset

1. contentSize属性

contentSize属性表示ScrollView中内容视图(Content View)(注意和ScrollView视图不同,是frame指定的范围)的大小,它返回CGSize结构体类型,该结构体包含widthheight两个成员。

正是因为内容视图超出了ScrollView视图大小,才会有滚动屏幕的必要。

2. contentInset属性

contentInset属性用于在ScrollView中的内容视图周围添加边框,这往往为了留出空白以放置工具栏、标签 栏或导航栏等

3. contentOffset属性contentOffset属性是内容视图坐标原点与ScrollView坐标原点的偏移量,返回CGPoint结构体类型,这个结构体类型包含xy两个成员。



应用如何与用户交流呢?警告框(AlertView)和操作表(ActionShee,屏幕底部弹出,选项列表,给用户提供多于两个的选择)就是为此而设计的。

警告框是UIAlertView创建的,用于给用户以警告或提示,最多有两个按钮,超过两个就应该使用操作表。


一般情况下,警告框的使用场景有如下几个。

应用不能继续运行。例如,无法获得网络数据或者功能不能完成的时候,给用户一个警告,这种警告框只需一个按钮。

询问另外的解决方案。好多应用在不能继续运行时,会给出另外的解决方案,让用户去选择。例如,Wi-Fi网络无法连接时,是否可以使用3G网络。

询问对操作的授权。当应用访问用户的一些隐私信息时,需要用户授权,例如用户当前的位置、通讯录或日程表等。


工具栏和导航栏

其中都可以放置UIBarButtonItemUIBarButtonItem是工具栏和导航栏中的按钮,在事件响应方面与UIButton类似。

工具栏类为UIToolbar。在iPhone中,工具栏位于屏幕底部。

工具栏是工具栏按钮(UIBarButtonItem)的容器。

导航栏主要用于导航,考虑的是整个应用,而工具栏应用于当前界面,考虑的是局部界面。

UINavigationController。导航控制器,可以构建树形导航模式应用的根控制器,

UINavigationBar。导航栏,它与导航控制器是一对一的关系。它管理一个视图栈,用来显示树形结构 中的视图。

UINavigationItem。导航栏项目,在每个界面中都会看到。它分为左、中、右3个区域,左侧区域一般 放置一个返回按钮(设定属性是backBarButtonItem)或左按钮(设定属性是leftBarButtonItem), 右侧区域一般放置一个右按钮(设定属性是rightBarButtonItem),中间区域是标题(属性是title) 或者提示信息(属性是prompt)。导航栏与导航栏项目是一对多的关系,

UIBarButtonItem。与工具栏中的按钮一样,它是导航栏中的左右按钮。



屏幕布局

Interface Builder设计器中,屏幕或控件的尺寸以点(point)为单位。在视网膜屏幕技术中,1个点包括了4个像素,而没有采用视网膜屏幕技术的还是1个点包括1个像素.

iPadiPhone屏幕布局中,一般会有状态栏、工具栏、导航栏以及内容视图部分,它们的尺寸也是固定的。 如图3-64所示,在iPhone竖屏幕中,状态栏占用20点,导航栏(或工具栏)占用44点,标签栏占用49点。


绝对布局和相对布局

绝对布局就是视图或控件在屏幕中的位置绝 对,它的大小也是绝对的。即使它所在的父容器视图大小变化或者屏幕旋转了,它的位置也不变。相对布局在上 述情况下,它的位置是变化的。



选择器

日期选择器

普通选择器


数据源协议与委托协议

UIPickerViewDataSource中的方法有如下两种。

numberOfComponentsInPickerView:。为选择器中拨轮的数目。

pickerView:numberOfRowsInComponent:。为选择器中某个拨轮的行数


集合视图

集合视图的组成,它有4个重要的组成部分。 

单元格。它是集合视图中的一个单元格。

。它是集合视图中的一个行数据,由多个单元格构成。

补充视图。它是节的头和脚。

装饰视图。集合视图中的背景视图。



集合视图单元格

  集合视图单元格是集合视图中最为重要的组成部分


小结

本章首先向大家介绍了视图和控件之间的关系以及应用界面的构建层次,然后介绍了标签、按钮、文本框、 文本视图、开关、滑块、分段控件、网页控件、屏幕滚动控件、活动指示器、进度条、警告、操作表、工具栏、 导航栏等基本控件,接着介绍了屏幕布局的内容,然后我们向大家介绍了一个较为复杂的控件——选择器,最后 讨论了iOS 6中集合视图方面的内容。




摘 要 随着互联网影视产业的迅速发展,电影资源呈指数级增长,类型也愈加多样化,但是用户面对如此庞大的影片库时,会遇到信息过载、筛选效率低下、观影决策成本高这些难题,而传统的电影平台大多只是对基本的分类热度进行展示,并没有提供个性化的推荐服务,社交互动以及一体化管理的能力也比较薄弱。 该系统使用的是Spring Boot+Vue前后端分离的方式进行开发,设计并开发了一个电影推荐评论系统。开发系统中存在三个问题,即无法准确地判断出用户的喜好、电影推荐功能上线之初没有用户数据,因此推荐效果不佳、大量用户同时评论打分时系统容易出现不稳定的情况。为了克服上述问题,本文查阅相关资料,不断迭代开发原型,并进行实际测试,完成整个系统的全部过程,即系统需求分析、架构设计、功能开发、系统测试。系统分为普通用户管理员两种身份,具有注册登录、电影浏览、电影推荐、评分评论、影片收藏、个人中心、后台管理等功能,采用结合用户喜好电影热度的简单推荐方式,提供热门电影推荐个性化推荐,很好地解决了推荐功能初始没有数据、数据较少的问题。项目用接口来完成前后端的数据交互,使用MySQL数据库存储用户、电影、评论、收藏等各种数据,并且加入权限验证、密码加密等安全措施,保证系统安全稳定并且便于后期扩展。除此之外,系统还增加了电影资讯查看、首页轮播图设置、编辑资讯等功能,使整个电影平台的服务更加全面,使用更加高效。经过全面的功能测试、接口测试性能测试,系统各个模块运行稳定,推荐接口响应时间小于300ms,主要的互动操作成功率大于98%,可以大大降低用户的选片成本,提高观影决策的速度社区互动的效果。 本文给出一套轻量级、易部署、可复用的电影推荐类Web应用工程实现方案,相比于传统的单一列表展示型平台,个性化服务、社交互动体验后台管理效率都有明显的提高,可以给影视文化数字化传播、推荐算法轻量化工程实践
源码直接下载地址: https://pan.quark.cn/s/a4b39357ea24 在 Excel 中进行阳历与阴历的相互转换,对于处理集体信息(例如通讯录)统计工作具有显著的实用性。本文将具体阐述如何借助 VBA 编辑器在 Excel 环境下完成阳历与阴历的互换转换。首先,需要打开相应的 Excel 文件,通过按 Alt+F11 激活 VBA 编辑器,随后选择插入菜单下的模块选项,将提供的代码片段复制到新模块中,并保存更改后关闭编辑器。完成上述步骤后,即可在指定单元格中调用以下四个函数以达成转换目标。 1. 阴阳历转换功能: 函数 `Lunar(SolarDate[, Part = 0 | 1 | 2 | 3])` 负责将阳历日期转换为对应的阴历日期。参数 `Part` 决定转换内容的详略程度,其值可为 0、1、2 或 3,分别对应完整日期、阴历年、阴历月及阴历日的转换。 函数 `Solar(LunarDate[, LunarMonth = 0 | 1])` 适用于将阴历日期转换为阳历日期。参数 `LunarMonth` 用于指定月份的归属,可为 0 或 1,分别代表转换至阳历月份或保留阴历月份。 2. 生日日期转换功能: 函数 `lunarbirth("1975-5-6")` 能够计算出阴历生日所对应的阳历日期。相对地,函数 `solarbirth("1975-5-6")` 用于推算阳历生日对应的阴历日期。 3. 日期信息计算功能: 函数 `LunarData(q_year)` 提供阴历日期的详细数据,涵盖阴历年、阴历月、阴历日等信息。函数 `ConvDataA` 存储了阴历与阳历的日期数据,包括阴历年、阴历月、阴历日、阳历月、阳历日等字段。 4. 应用...
下载代码方式:https://pan.quark.cn/s/a4b39357ea24 在信息技术行业中,特别是在人工智能(AI)的子领域——计算机视觉方面,动作分析是一个至关重要的组成部分。这一议题与“Python-PyTorch动作分析模型库”有着紧密的联系,它涵盖了运用Python编程语言PyTorch框架来构建应用深度学习模型,旨在解析判定视频中的行为。接下来,我们将详细研究这一领域的重要概念。 **PyTorch** 是由Facebook开发的一个开源且功能强大的深度学习平台,它具备动态计算图特性,从而让模型构建调试过程更加便捷。PyTorch的关键在于Tensor类,该类是数值运算的基础,同时支持自动计算梯度,为神经网络的训练提供了便利。 **动作分析** 是计算机视觉中的一个核心任务,其目的是识别视频中的特定行为,例如奔跑、跳跃、招手等。这项任务通常包括从视频材料中提取图像帧,然后对单个帧或帧序列进行特征提取,最终借助已训练的模型进行分类。 在描述中提及的“流行动作分析模型”,或许涵盖了当前研究领域的主流模型,例如**双流卷积网络**,这种模型融合了空间时间信息,通过分别处理RGB图像光流图像来提高行为分析的精确度。还可能包括**时间分割网络(TSN)**,它通过跨长时间范围的样本选择来把握行为的整体特征。另外,更前沿的模型如**时间迁移模块(TSM)** **非局部神经网络** 也可能被纳入其中,这些模型通过创新的网络构造来更有效地捕捉时间序列中的动态变化。 **某类数据集** 可能是指像UCF-101或Kinetics这样的标准动作分析数据集,它们包含了大量标注好的视频片段,用于模型的训练性能评估。这些数据集在动作分析研究中被...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值