1 前言

本章主要介绍了View视图对象,包括了其属性,视图间关系和CALayer的简介。

英文原文:http://blog.csdn.net/developer_zhang/article/details/12754255

2 详述

View是一个能够自己绘制用一个window的矩形区域并且能够响应例如手指触摸或者鼠标点击的用户动作的对象。是一个视图绘制一个自己的可视化外观并且显示响应触摸和设备输入的外观。不是所有的视图都用来处理事件,但是视图更可能处理事件的几率多于其他的响应对象(具有响应事件能力的对象)。视图也能够提供输出内容。对于一个可用的视图,它必须位于层级窗口之中。

从Mac OSX的NSView或者IOS的UIView直接或者间接的继承的视图。这些类自己不执行绘制也不处理事件。但是提供接口和基础结构给子类。AppKit和UIKit框架提供几乎所有的我们在application窗口中看到的视图,包括按钮,表格视图,文本框,工具栏和滑动条。这些视图对于在Interface Builer库中的工程是可以使用的。我们还能够子类化UIView或者NSView并且创建自定义可以绘制自己并且处理事件以不同的方式的视图。

2.1 视图的核心属性

在UIKit和AppKit框架中的视图有重要的可操作的属性:

·视图边界和位置:视图的frame和bounds定义了它的边界和它与其他视图的的关系。frame指定在父视图的坐标系中的位置和视图的size。视图的bounds指定本身视图用来绘制自己的坐标系。(UIKit中的视图还有一个定位他们矩形区域中心的属性)。

·与其他视图的关系:父视图,子视图和窗口属性定义了一个在窗口中视图在视图层次的位置。我们添加视图(子视图)来创建混合视图来封闭视图(父视图)并且基本上用来创建用户界面。当封闭视图自己被重置的时候,autoresizing属性按照子视图的位置和重置他们的方式执行。

2.2 视图是动画能力的继承

在IOS和OS中,每个视图都通过layer属性依靠一个核心动画图层对象(CALayer)。图层对象缓存了视图绘制内容,支持布局并且显示内容,并且能够合成和让内容动起来。视图确定的属性,例如视图frame和opacity都提供了隐含的动画能力。此外,应用可能明确地使视图活动起来通过使用Core Animation框架的工具。

在OS中,CALayer支持是一个可选的,然而在IOS中该支持是被植入到每一个视图的实现之中的。

3 结语

以上是所有内容,希望对大家有所帮助。

IOS深入学习(19)之View object的更多相关文章

  1. 开源中国iOS客户端学习

    开源中国iOS客户端学习 续写前言 <开源中国iOS客户端学习>续写前系列博客    http://blog.csdn.net/column/details/xfzl-kykhd.html ...

  2. ios开发学习笔记(这里一定有你想要的东西,全部免费)

    1,Search Bar 怎样去掉背景的颜色(storyboard里只能设置background颜色,可是发现clear Color无法使用). 其实在代码里还是可以设置的,那就是删除背景view [ ...

  3. 原 iOS深入学习(Block全面分析)http://my.oschina.net/leejan97/blog/268536

    原 iOS深入学习(Block全面分析) 发表于1年前(2014-05-24 16:45)   阅读(26949) | 评论(14) 39人收藏此文章, 我要收藏 赞21 12月12日北京OSC源创会 ...

  4. iOS阶段学习第一天笔记(Mac终端的操作)

    前言部分 原本从事的是.NET开发,一直在要不要转iOS 中犹豫徘徊,经过复杂的内心挣扎终于鼓起勇气辞职脱产学习iOS;希望通过四个月的 学习后能够拿到理想的薪资.以下是学习过程中的学习笔记,为了方便 ...

  5. 白话学习MVC(十)View的呈现二

    本节将接着<白话学习MVC(九)View的呈现一>来继续对ViewResult的详细执行过程进行分析! 9.ViewResult ViewResult将视图页的内容响应给客户端! 由于Vi ...

  6. 白话学习MVC(九)View的呈现一

    一.概述 本节来看一下ASP.NET MVC[View的呈现]的内容,View的呈现是在Action执行之后进行,Action的执行生成一个ActionResult,[View的呈现]的功能就是:通过 ...

  7. ios网络学习------6 json格式数据的请求处理

    ios网络学习------6 json格式数据的请求处理 分类: IOS2014-06-30 20:33 471人阅读 评论(3) 收藏 举报 #import "MainViewContro ...

  8. iOS动画学习-视觉效果

    CALayer不仅仅是iOS动画学习-CALayer中介绍的那些内容,他还有一些其他属性,比如shadowColor,borderWidth,borderColor等等,这些属性我们只需要简单点设置就 ...

  9. iOS开发者学习Flutter

    Flutter for iOS 开发者 本文档适用那些希望将现有 iOS 经验应用于 Flutter 的开发者.如果你拥有 iOS 开发基础,那么你可以使用这篇文档开始学习 Flutter 的开发. ...

  10. iOS 反射 学习 和 运用

    iOS  反射 学习 和 运用 反射:  通过 类名来获得生成的相应的类的实例 的这种机制  叫 反射 常用的反射方式 把 NSDictionary  转成 自定义 model 自定义 model 转 ...

随机推荐

  1. 20160129.CCPP体系详解(0008天)

    程序片段(01):函数.c+call.c+测试.cpp 内容概要:函数 ///函数.c #include <stdio.h> #include <stdlib.h> //01. ...

  2. Spark快速入门(1)

    1 安装Spark 首先,到 https://spark.apache.org/downloads.html 选择最新的 Spark 版本和 Hadoop 版本(实际上我们暂时用不上 Hadoop,所 ...

  3. PHP截取中文字符串

    这里的输出的长度是6,那么一个汉字的字符长度就是3咯,可是老师演示的一个字符的长度却是2,百思不得其解. 查了一下资料发现,这个问题的答案与系统所采用的字符编码方式有关: 1. utf-8 如果系统采 ...

  4. g++

    用g++编译程序时,-l 与-L各是什么意思?还有-I -l 表示:编译程序到系统默认路进搜索,如果找不到,到当前目录,如果当前目录找不到,则到LD_LIBRARY_PATH等环境变量置顶的路进去查找 ...

  5. 使用Drush管理Drupal站点

    Drush(Drush = Drupal + Shell)就是使用命令行命令来操作Drupal站点,它的命令格式与git类似,都是双字命令(drush + 实际的命令).既然是命令行命令,也就可以使用 ...

  6. Selenium IDE- 不同的浏览器

    Selenium IDE- 不同的浏览器 Selenium IDE脚本只能对火狐的工具Firefox插件运行测试.使用Selenium-IDE开发的测试可以对其他浏览器所保存为Selenium网络驱动 ...

  7. “iOS 推送通知”详解:从创建到设置到运行

    这是一篇编译的文章,内容均出自Parse.com的iOS开发教程,同时作者还提供了视频讲解.本文将带领开发者一步一步向着iOS推送通知的深处探寻,掌握如何配置iOS推送通知的奥义. 介绍一点点背景资料 ...

  8. Apriori算法例子

    1 Apriori介绍 Apriori算法使用频繁项集的先验知识,使用一种称作逐层搜索的迭代方法,k项集用于探索(k+1)项集.首先,通过扫描事务(交易)记录,找出所有的频繁1项集,该集合记做L1,然 ...

  9. dispatch_once单例初始化

    static GHCache *instance = nil; /** *  单例,静态初始化方法 * *  @return 返回一个单例 */ + (GHCache*)shareCache{ sta ...

  10. QS之vcom

    -2008 | -2002 | -93 | -87 choose VHDL 2008, 2002, 1993, or 1987 -explicit resolve ambiguous overload ...