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


举例1:绘制文字

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

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

        NSMutableDictionary *dict = [NSMutableDictionary new];

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

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

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

         //可以开始绘制了

        NSString *str =@"测试绘制文字..................";

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

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

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

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

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


举例2:绘制图片

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

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

        IUImage *p_w_picpath = [UIImage p_w_picpathNamed:@"...png"];

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

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

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

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

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


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