轻松学iPhone开发之图像和绘.pptx_第1页
轻松学iPhone开发之图像和绘.pptx_第2页
轻松学iPhone开发之图像和绘.pptx_第3页
轻松学iPhone开发之图像和绘.pptx_第4页
轻松学iPhone开发之图像和绘.pptx_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第4章 图像和绘图,UIView的子类中,我们可以使用固定的形状如UIButton,TextField来绘制用户界面。有时,为了使用户看到的界面生动形象,我们可以自己绘制一个图形。绘制图形的方法有两种:一种是使用UIImageView类来显示一个图像,一种是通过代码来动态的绘制一个图形。本章主要讲解使用代码动态绘制一个图形。,4.1 图像视图的创建,图像是由一些排列的像素组成的,在计算机中的存储格式有BMP、PCX、TIF、GIFD等,一般数据量比较大。它除了可以表达真实的照片外,也可以表现复杂绘画的某些细节,并具有灵活和富有创造力等特点。我们要在用户界面显示图像,必须要有UIImageView视图才可以,现在我们来为大家讲解图像视图的创建。,4.1.1 静态创建图像视图,创建一个项目名为400的项目。要静态创建一个图像视图,首先要拖一个UIImageView的视图到ViewController.xib文件的设置界面。再将一个要显示的图像添加到项目中的Supporting Files文件夹中。如果要显示的图像在Supporting Files文件夹中就不需要添加。在这里我们要显示的图像在桌面上,图像名为“114747086.jpg”。图片添加好以后,我们选择“show the Attributes inspector”对话框中Image View选项,将Image设置为要用来显示在用户界面的图像。,4.1.2 动态创建图像视图,我们不仅可以使用手动创建图像即静态创建图像,还可以动态的创建图像也就是我们所说的使用代码创建图像视图,创建图像视图的形式如图4.3所示。,4.2 图像的属性,属性相信大家并不陌生了。我们在使用图像时,为了达到最佳效果,也需要设置图像的属性。本节将主要为大家讲解图像的显示方式、图示的显示位置等相关方面的内容。,4.2.1 图像的显示方式,当我们在ViewController.xib文件中设置用户界面时,将UIImageView拖到设置界面,大家会看到“show the Attributes inspector”选项卡的View中有一个Mode设置,它就是将图像以各种方式进行显示。,4.2.1 图像的显示方式,4.2.2 图像的显示位置,如果我们想要改变图像的位置时,我们可以采用三种方法:frame、center、transform。接下来我们详细的为大家讲解这三种方法。,1.frame,要想修改图像的位置,我们可以在创建时直接选择我们要将图片放置的位置,使用frame的形式。,1.frame,1.frame,1.frame,2.center,我们如果要通过使用图像视图的中间点来改变图像的显示位置。,3.transform,transform的功能不仅可以改变图像的位置,还可以使图像进行旋转和缩放。,3.transform,3.transform,3.transform,4.2.3 图像的其它属性,以上我们为大家讲解了我们常用到的属性设置。接下来,我们为大家介绍图像的其它属性设置。,4.3 图像切换,我们在使用手机查看相册中的图像时,就用到了图片的切换,本节我们将为大家讲解图像和图像之间是如图实现切换的。,4.4 绘图,为了使我们的用户界面看起来很漂亮,我们可以使用代码动态的绘制我们想要的图形。而所有的绘图都必须要通过图形上下文来实现。本节将主要讲解图形上下文和在绘图时所用到的数据类型等相关方面的内容。,4.4.1 图形上下文,图形上下文(Graphics Context)是一个非常重要的概念。没有它,我们无法对图形设备画任何东西。图形上下文为图形设备提供了上下文,通俗点讲,就是提供了画图环境。所谓图形设备就是对呈现图形的设备的抽象,比如屏幕、打印机等。一般我们用到的图形上下文一共有五种。,4.4.1 图形上下文,4.4.2 数据类型,在绘图中,有着它自己特有的数据类型。这些数据类型以功能。,4.5 绘制路径,路径指的是物体活动的轨迹,我们可以通过不同的路径将我们的图绘制为直线、矩形、圆等不同的形状。本节将主要为大家讲解基本形状的绘制方法。,4.5.1 绘制直线,要绘制直线,必须要获取当前的图形上下文。只有获取了当前的图形上下文我们才可以绘制图形或修改绘图结果。,4.5.1 绘制直线,4.5.1 绘制直线,4.5.1 绘制直线,4.5.2 绘制矩形,直线是我们使用路径指令绘制的最简单的图形。现在我们使用路径中的CGContextAddRect或者是CGContextAddRects来绘制一个矩形。在这里我们使用的是CGContextAddRect绘制矩形。,4.5.3 绘制圆,在路径指令中使用CGContextAddEllipseInRect指令来绘制圆。,4.5.4 其它的路径指令,以上路径指令是大家经常用到的,以下是路径指令中的其它指令。,4.5.5 iPhone Simulator不显示绘制内容的情况,由于各种意外情况,在编写好程序以后,iPhone Simulator模拟器不会出现我们所绘制的内容,现在我们将一些可能的情况列出,希望大家注意。,1.运行时,我们在编写好程序以后是不能直接运行的,要将ViewController.xib文件的设置界面所遵循的类改为我们所创建的绘制图形的类一般都被命名为“draw”。,2.缺少描边或填充路径的指令,在绘制好图形以后,描边或填充路径的指令是不可缺少的。我们以示例4-12为例,将程序的CGContextStrokePath指令故意缺少,这样iPhone Simulator模拟器就不会显示我们所绘制的图形。,3.没有指定当前点,如果我们绘制的图形用到了路径指令中CGContextAddLineToPoint或者是CGContextAddArcToPoint等和点相关的指令时,要指定当前点的位置。我们以示例4-12为例,将指定CGContextMoveToPoint所指定的当前点去掉,这样iPhone Simulator模拟器也不会显示我们所绘制的圆弧。,4.6 绘制位图,位图指的是以无数的色彩点组成的图案。当我们将位图无限放大时就会看到一块一块的像素色块,这时效果会失真。本节主要为大家讲解绘制位图的两种方法:一种是CGContextDrawImage,一种是CGContextDrawTiledImage。,4.6.1 CGContextDrawImage绘制位图,如果我们要将相应的图片绘制到我们所指定的矩形区域中,那么就要使用CGContextDrawImage方法绘制的位图。,4.6.2 CGContextDrawTiledImage绘制位图,如果想让固定大小的位图平铺某个区域,就要使用CGContextDrawTiledImage设置所要绘制的图形。,4.6.2 CGContextDrawTiledImage绘制位图,4.7 阴影,有时,为了让绘制的图形更有立体感,我们就要为图形加上阴影。为了在绘图中添加阴影,需要在绘图前给图形上下文设置阴影,设置阴影的方法通常为CGContextSetShadow。,4.8 绘制文字,一般我们使用textField或者是Text View视图书写的文字不能直接达到我们想要的效果,所以我们就使用代码动态的绘制文字。本节将主要为大家讲解有关文字中的选择文字、设置绘制的模式、设置文字转换矩阵、绘制文字等相关方面的内容。,4.8.1 选择字体,要绘制一个文字,首选要进行字体的选择,我们可以使用CGContextSelectFont选择我们想要的字体。,4.8.2 设置文字绘制模式,文字的绘制模式一般使用CGContextSetTextDrawingMode来设置。,4.8.3 设置字体变换矩阵,CGContextSetTextMatrix的功能是设置字体转变的矩阵,也是为了防止字体倒立。,4.8.4 绘制文字,当我们按以上过程都设置好以后就可以绘制文字啦,我们使用CGContextShowTextAtPoint来绘制文字。,4.8.5 文字的综合应用,以上的内容是文字的基本设置方法,现在我们就来使用CGContextSelectFont将字体设置为Helvetica,字体大小为36.0,编码格式为kCGEncodingMacRoman。使用CGContextSetTextMatrix设置矩阵的平移。使用CGContextSetTextDrawingMo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论