【绘图案例-绘制文字 Objective-C语言】

这篇博客详细介绍了在Objective-C中如何使用`drawAtPoint:`和`drawInRect:`方法来绘制文字。博主通过实例演示了如何设置文字的位置、大小、颜色、阴影等属性,并强调了字典参数与NSAttributedString.h头文件的关系。同时,博客提到了这两个方法在绘制文字过程中的工作原理和注意事项,如文字换行、阴影效果等。
摘要由CSDN通过智能技术生成

一、绘制文字

通知

1.接下来呢,我们来说这个绘制文字,

通知

绘制文字,我们通过OC的方法来画,实际上,就是两个方法:

1)- [str drawAtPoint:]

2)- [str drawInRect:]

把我们之前的copy代码复制粘贴一份儿,名字改成“04-绘制文字“,

通知

2.绘制文字:

1)首先:要想绘制文字,你要有文字:

NSString *str = @“一个程序员”;

通知

2)第二:我们再来第二步,第二步,实际上,一句话,就可以达到绘制的目的,然后呢,绘制的话啊,通过这个字符串对象,调用

通知

调用draw的方法,

通知

draw,然后呢,会有两个方法,这个里边啊:

1)drawInRect:(CGRect) withAttributes:(NSDictionary< NSString *,id > * )

2)drawAtPoint:(CGPoint) withAttributes:(NSDictionary< NSString *,id > *)

然后呢,我们一个一个来看,

3.我们先来看这个drawAtPoint:

通知

str drawAtPoint:(CGPoint) withAttributes:(NSDictionary *)

先来写一个drawAtPoint:输入两个参数:

1)第一个参数:drawAtPoint:(CGPoint),在这个里边儿呢,写一个CGPointMake(CGFloat x,CGFloat y),我在这个里边呢,先传一个CGPointZero,

通知

CGPointZero,

通知

2)第二个参数:withAttributes:(NSDictionary *),然后呢,后边儿,让你传一个Attributes,

通知

然后呢,让你传的是一个字典,

这个字典呢,我先传nil,

通知

这个字典呢,我先传空,最后我们再来讲这个字典的问题,然后,就这两句代码,

通知

command + R,

通知

这个文字,就画完了啊,

3.然后呢,实际上啊,我们虽然看起来,这个绘制字符串,应该没啥,实际上,就感觉这一句话,感觉就写了一句话,实际上,这一句话啊,

通知

1)它也是获取到了当前的上下文,

2)然后呢,把这个文字,变成一个路径,放到你的上下文当中,

3)然后,再通过上下文,去进行渲染,

然后呢,它这一句话,也是做了这么多事情,

绘图的步骤,一定是不变的,

都是这三步,

在这个里边呢,我们通过它,可以来去绘制文字,

[str drawAtPoint:CGPointZero withAttributes];

那么,现在呢,有一个问题,问题是什么,我现在把这个字符串,如果很长的话,

通知

command + R,

通知

这块儿看的,我给它变成四个字啊,四个字,整好,

通知

看最后一个字啊,

通知

最后一个字是“黑”,这个里边呢,后面的文字,它好像绘到后面去了,是吧,

这个时候,好像它不能够换行,

所以呢,我们想解决这个换行的问题,怎么办,

好,这个里边儿,还有一个方法,你的这个str对象里边儿,draw里边儿,还有一个叫做drawInRect:方法,

通知

str draw InRect:(CGRect) withAttributes:(NSDictionary *)

通知

输入两个参数:

1)第一个参数:drawInRect:(CGRect),这个里边儿,让你传的是一个Rect,如果,你直接把rect传进来,

通知

直接把rect传进来,

通知

如果你直接把这个当前View的bounds传进来,

2)第二个参数:withAttributes:来一个nil,第二个这个字典,传空的话,

通知

command + R,

通知

也就是说,你传一个区域给我,我就在这个区域里边,给你画,

或者说,这个区域,你可以自定义嘛,CGRectMake(CGFloat

  • 15
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清风清晨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值