Quartz2D的简单使用概述(二)

接上一篇,继续纪录Quartz2D的一些简单的用法。

举例1:绘制文字

        创建一个字符串对象和一个用来给这个字符串对象设置相关属性的字典,使用字符串的绘制方法将它绘制到某个位置或点即可。

矩形的绘制这里不再赘述,主要写一下如何设置文字的属性字典:

NSMutableDictionary *dict = [NSMutableDictionary new];

dict[NSForegroundColorAttributeName] = [UIColor redColor];    //文字颜色

dict[NSBackgroundColorAttributeName] = [UIColor greenColor];    //文字背景色

dict[NSFontAttributeName] = [UIFont systemFontOfSize:20];    //文字大小

//可以开始绘制了

NSString *str [email protected]"测试绘制文字..................";

//在某个坐标开始绘制,超出屏幕部分不会换行

[str drawAtPoint:CGPoint(100,100)  withAttributes:dict];

//或者绘制到某个范围内,超过宽度会自动换行,超出高度部分不会自动适应。

[str drawInRect:CGRectMake(100,100,100,80) withAttributes:dict];

如果不设置文字的绘制属性,字典那个参数穿空即可。

举例2:绘制图片

//直接创建图片对象,然后使用对应的draw方法绘制即可。

//方案一:将图片绘制到指定范围内,图片不会被压缩,会被平铺到指定范围,根据图片的像素比例可能会绘制多张

IUImage *image = [UIImage imageNamed:@"...png"];

[image drawAsPatternInRect:CGRectMake(100,100,320,480)];

//方案二:将图片绘制到指定范围内,图片会被拉伸铺满该指定范围,只会绘制一张

[image drawInRect:CGRectMake(100,100,320,480)];

//方案三:从某一点开始绘制图片,会自动根据图片的比例绘制,只会绘制一次

[image drawAtPoint:CGPoint(100,100)];

总结说明一下:因为文字和图片被绘制时不需要上下文的渲染,所以在开始时是不需要拿到上下文进行操作的。

        




















时间: 2024-12-21 00:20:14

Quartz2D的简单使用概述(二)的相关文章

Quartz2D的简单使用概述(一)

很久没有更新博文,今天把之前就想研究的quartz2D看了下,了解了些简单的作画方法,赶紧记录下来.学习Quartz2D的主要目的是为了以后更加方便的自定义一些界面控件时用到,毕竟大部分app都有个性化的定制界面.以下纪录一些常用的简单作图方法. 想要自定义的控件基本都是继承自UIView,然后重写其drawRect方法.Quartz2D的方法都是纯c的,所有通用的步骤都是先获取上下文,然后再进行内部自定义,最后渲染,而且它的自带函数多半都是CGContext开头的: 1.获取上下文 CGCon

Quartz2D的简单使用概述(三)

这里交代一些作图时可能遇到的问题: 问题一:当同时画多条线时,在第一条线设置属性后,后面画的所有线都会延用这些属性来绘制.         其实解决的方法很简答,就是在绘制一条新的线条时重置下绘制的属性即可,比如,在画第一条是的属性设置是: CGContextSetLineWidth(ctx,12);    //线条宽度 [[UIColor redColor]set];                   //线条颜色 CGContextSetLineCap(ctx,kCGLineCapRoun

杨森翔:春节文化大观上编 第三章 春节古诗词 目录 第一节:春节诗词概述 一、 除夕诗词概述 二、元日诗词概述 三、 元宵诗词概述 第二节:春节古诗词拾萃

杨森翔:春节文化大观上编 第三章 春节古诗词 目录 第一节:春节诗词概述 一. 除夕诗词概述 二.元日诗词概述 三. 元宵诗词概述 第二节:春节古诗词拾萃 一.腊祭诗词 二.祭灶诗词 三.除夕诗词 四.元旦诗词 五.人日诗词 六.元宵诗词 第一节:春节古诗词概述 中国的春节,作为除旧迎新的节日,时间相当长,从年前的腊月二十三,天空中就似乎弥漫了节日的气息.这种节日的气氛,在保持传统风俗较好的地方,甚至会持续到二月二龙抬头的时候,但欢度春节的高潮,应该说是自除夕始一直到上元之夜.因此,历代歌咏和反

linux运维自动化之puppet简单应用(二)

上篇博客介绍了在单机环境下的puppet应用,这次我们基于C/S模式来介绍下puppet! 一.实验环境 服务器角色 IP地址 安装软件 主机名 服务器端 172.16.8.1 puppet-server www.gulong.com 客户机端 172.16.8.2 puppet node1.gulong.com 客户机端 172.16.8.3 puppet node2.gulong.com 三台主机时间同步: #ntpdate 172.16.0.1 三台主机可以相互解析: # vim /etc

Bind简单应用之二(正向解析主从服务器)

DNS主从服务器应用实验 实验环境    系统:Centos 6.3 X64 软件:Bind.x86_64 32:9.8.2-0.10.rc1.el6 主服务器: IP 10.0.0.101:netmask 255.255.255.0 :DNS 10.0.0.102:GW 10.0.0.1 从服务器: IP 10.0.0.102:netmask 255.255.255.0 :DNS 10.0.0.102:GW 10.0.0.1 1.分别在两台服务器上安装Bind软件 #yum install b

python实现简单爬虫(二)---- 使用urllib等python模块

之前使用scrapy实现了一个超级简单的爬虫工具,用于抓取豆瓣上面所有的编程书籍信息(由于不需要爬取整个页面的所以链接,所以不需要用到BFS or DFS,只实现顺序抓取下一页) 这次使用的是python自带的urllib 和urllib2等python模块实现,同样以豆瓣上面的爱情电影信息作为爬取对象,方法与过程其实如出一辙,同样是对每一个页面发出请求后获取响应得到的网页源码,再使用正则表达式去匹配获得所需信息,然后获取下一页的链接继续爬取. 爬取页面: 网页源码: title and lin

Win8 Metro(C#)数字图像处理--2.56简单统计法图像二值化

原文:Win8 Metro(C#)数字图像处理--2.56简单统计法图像二值化  [函数名称] 简单统计法图像二值化 WriteableBitmap StatisticalThSegment(WriteableBitmap src) /// <summary> /// Statistical method of image segmention. /// </summary> /// <param name="src">The source im

Android应用加固的简单实现方案(二)

个人博客 http://www.milovetingting.cn Android应用加固的简单实现方案(二) 前言 上一篇文章介绍了基于dex加固方案的两种具体实现.相对于手动加固,基于gradle实现的加固方案效率有了进一步提升.但是,还是需要在壳Module中增加util相关工具类的引用,为进一步减少代码侵入性,在前面方案的基础上,进一步完善插件的功能. 实现原理 为了避免在壳Module中引入脱壳相关的工具类,可以在aar生成后,利用ASM生成需要的class文件,然后修改aar中的cl

Quartz2D 之 简单介绍

1. 概述 Quartz2D 是一个二维绘图引擎. 主要功能: 绘制图形:线.矩形.圆.弧 绘制文字 绘制图片 绘制PDF 裁截图片 自定义UI控件 2. 图形上下文 Graphics Context,是绘制图形的环境,就类似现实中的一个画板及画笔.皮擦等整套工具. Quartz2D里面的Graphics Context的类型是CGContextRef. 2.1. 作用 在指定设备.媒介上(屏幕.图片.PDF)绘制图形.设置图形的样式.颜色等属性. 3. 怎么自定义View 在 -(void)D