资讯专栏INFORMATION COLUMN

UIView初识

Maxiye / 313人阅读

摘要:从运行时的角度来看,即使用一个对象来控制这片区域里面内容的渲染和交互的事件。事件处理每一个都是响应者,它可以处理定义的所有事件。在系的继承层次中可以看出,继承自,这也赋予了它事件处理能力。


UIView,也即User Interface View,就是用户界面的意思。毫无疑问,这是与用户关系最密切的一层,也是产品狗们真正关心的地方,所以,对UIView的掌握在很大程度上决定着一个程序猴的“工作能力”。之前也在网络上看到过许多UIView的中文讲解,个人感觉比较零散,在这里,我希望通过自己的努力和学习,将其进行一下更好的汇总。

UIView简介

The UIView class defines a rectangular area on the screen and the interfaces for managing the content in that area. At runtime, a view object handles the rendering of any content in its area and also handles any interactions with that content. The UIView class itself provides basic behavior for filling its rectangular area with a background color. More sophisticated content can be presented by subclassing UIView and implementing the necessary drawing and event-handling code yourself. The UIKit framework also includes a set of standard subclasses that range from simple buttons to complex tables and can be used as-is. For example, a UILabel object draws a text string and a UIImageView object draws an image.

UIView类在屏幕上定义了一个矩形的区域和对这片区域的内容进行管理的接口。从运行时的角度来看,即使用一个对象view来控制这片区域里面内容的渲染和交互的事件。UIView类提供了比较简单的填充区域的方法,比如设置background color。当然,我们也可以通过子类化UIView来提供更复杂的页面渲染和事件处理方法。UIKit框架也提供了一些标准的UIView的子类,从简单的button到复杂的tableview都有定义。

UIView职能

可以这么说,UIView类是一个应用与用户进行交互的最重要的方式,这促成了UIView的多种职能。当然,在本文,不展开介绍每个职能,后面我会专门写三篇或者更多文章来对这几个方面的内容进行介绍。

1. 页面填充和动画

一个view对象通过使用UIKit,Core Graphics或者OpenGL ES来对页面进行填充。

可以通过改变UIView类的一些属性的值来制作动画。

2. 布局和管理子视图

view可以包含任意数量的子视图。

view可以对自身的默认大小进行设定。

view可以设定其子视图的大小和位置。

3. 事件处理

每一个view都是响应者,它可以处理UIResponder定义的所有事件。

view可以使用addGestureRecognizer:方法来添加手势响应者来处理一般的手势。

从层次的角度来看UIView

这里,本文决定以从下到上的方式来分析其模块层次,并以从上到下的方式来分析其对象层次。

1. 模块层次


首先,理清几个常见概念,分别是:Cocoa,Foundation和UIKit。Cocoa不是一种编程语言(它可以运行多种编程语言),它也不是一个开发工具,它是创建iOS程序的原生面向对象API,为这iOS应用提供了编程环境,上图中Foundation和UIKit也是Cocoa提供的框架。当然,也可以轻松看出,Foundation和UIKit分别是Core Service层和Cocoa Touch的主要框架。那么,UIView存在在哪里呢?对,存在于UIKit框架提供的UI系的类里面,属于Cocoa Touch层。
接下来,从下层到上层,依次看一下Cocoa的几个层次。

Core OS是位于iOS系统架构最下面的一层是核心操作系统层,它包括内存管理、文件系统、电源管理以及一些其他的操作系统任务。它可以直接和硬件设备进行交互。作为app开发者不需要与这一层打交道,所以不进行过多的介绍(其实多的我也不清楚)。

Core Services是核心服务层,可以通过它来访问iOS的一些服务。这些服务的关键就是Foundation内核和Foundation框架,它们共同定义了所有app使用的最基本的类型,来为上层开发作基础。其中包含例如:网络,位置等服务。

Media层提供了图形、音频和视频的处理的基础。图形方面包含Core Animation、OpenGL等,音频方面包含AV Foundation、OpenAL等,视频方面包含AV Foundation、AVKit、UIImagePickerController等。

Cocoa Touch层包含构建iOS应用的主要框架。这些框架定义了你的应用程序的表现层。他们还提供了应用程序的基础设施和关键的技术机制,如多任务处理机制,触摸式输入机制,推送通知机制等许多高层次的系统服务。当然,这也是作为程序猴的我们最关心的一层。主要框架包含:UIKit、MapKit、EventKit等。

Application层就不做过多的讲解了。

2. 继承层次


上面的关系图从对象的继承层面写出了UIKit的框架层次,其实这个图并不完整。因为NSObject是iOS中所有类的基类,所以单纯的从NSObject指向UIKit框架的类不太准确。就拿Foundation框架来说,它也是基于NSObject的。因此,我们把上图所幸称之为NSObject的UI系类,Foundation框架下的类则称之为NS系。
在UI系的继承层次中可以看出,UIView继承自UIResponder,这也赋予了它事件处理能力。而看到UIView的子类,包括UIWindow、UILabel、UIAlertView、UIWebView等等,终于看到了我们开发中最常用也最亲切的东西,本章的内容也到此为止。


本文大体对UIView的职能和地位做了一定的介绍,接下来的几篇关于UIView的文章将在三个职能、Cycle Memthod和Override Method几个方面进行展开。期望本文能对您有所帮助,更期望您的宝贵意见。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/16096.html

相关文章

  • 慕课网_《iOS-动画进阶》学习总结

    摘要:时间年月日星期一说明本文部分内容均来自慕课网。慕课网教学示例源码个人学习源码第一章动画进阶学习课程前,请先学习慕课网动画入门学习总结。 时间:2017年05月22日星期一说明:本文部分内容均来自慕课网。@慕课网:http://www.imooc.com教学示例源码:https://github.com/zccodere/s...个人学习源码:https://github.com/zcc...

    aervon 评论0 收藏0
  • 慕课网_《iOS基础教程之界面初体验》学习总结

    摘要:年月日星期一说明本文部分内容均来自慕课网。它富有交互性及趣味性并且你网提供了丰富的移动端开发开发前端教程以及视频教程等课程资源。 2017年05月15日星期一说明:本文部分内容均来自慕课网。@慕课网:http://www.imooc.com教学示例源码:无个人学习源码:https://github.com/zccodere/s... 第一章:大V有话说 1-1 各种叨唠 什么是MVC ...

    RayKr 评论0 收藏0
  • iOS中如何根据UIView获取所在的UIViewController

    摘要:简述本文将讲述在开发中如何根据某个前提是该已经被加入到中来获取所属的。大概的传递规则就是从视图顶层的向下到再到再到最后到。结束直接把上面这段代码加入你的文件中,就可以调用来获取他的了。 简述 本文将讲述在iOS开发中如何根据某个UIView(前提是该UIView已经被加入到Controller中)来获取所属的UIViewController。 UIResponder 做过事件响应处...

    darkbug 评论0 收藏0
  • 关于Core Animation动画(上)

    摘要:关于动画上与对于和,大家应该都很熟悉。需要注意的是,所关联的,是禁用了隐式动画的。而称为展现图层,它实际上是的一份拷贝,表示了任意时刻屏幕显示的的真实值。 关于Core Animation动画(上) 1. UIView与CALayer 对于UIView和CALayer,大家应该都很熟悉。通常我们了解到UIView是通过视图树的结构来组织起来的,实际上,UIView管理并维护了另一个图层...

    cjie 评论0 收藏0
  • iOS基础(二)

    摘要:视图,表示屏幕上的一块矩形区域,同时处理该区域的绘制和触屏事件。如果动画顺利完成,没有被其他动画取消或停止,则该值为。缺省情况下,所有支持动画的属性在动画块中发生的变化都会形成动画。 UIView 视图,表示屏幕上的一块矩形区域,同时处理该区域的绘制和触屏事件。 一个视图也可以作为其他视图的父视图,同时决定着这些子视图的位置和大小. UIView类做了大量的工作去管理这些内部视图的...

    Y3G 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<