Ios 为什么';t文本从0,0开始?

Ios 为什么';t文本从0,0开始?,ios,cocoa-touch,layout,graphics,uilabel,Ios,Cocoa Touch,Layout,Graphics,Uilabel,iOS的这个问题困扰了我一段时间: 在设计时,我会按照我想要的外观来布置我的元素。进入编码阶段,我测量事物之间的距离,以便正确放置每个元素。在图像上使用UIImageView或drawRect:可以很好地工作,并以正确的大小将其放置在正确的位置。但是,在文本上使用UILabel或drawRect:并不能在正确的点上启动它-它会超出几个像素。最后我回到Photoshop,测量它的距离,与它应该的距离进行比较,以确定我需要调整它的位置多少。每次我画课文时都要这样做。这个问题有没有我不知道的解决方案。

iOS的这个问题困扰了我一段时间:


在设计时,我会按照我想要的外观来布置我的元素。进入编码阶段,我测量事物之间的距离,以便正确放置每个元素。在图像上使用
UIImageView
drawRect:
可以很好地工作,并以正确的大小将其放置在正确的位置。但是,在文本上使用
UILabel
drawRect
:并不能在正确的点上启动它-它会超出几个像素。最后我回到Photoshop,测量它的距离,与它应该的距离进行比较,以确定我需要调整它的位置多少。每次我画课文时都要这样做。这个问题有没有我不知道的解决方案。

原因是在
(0,0)
CGPoint
处绘制文本是指定文本的基线,而不是左上角。您需要获取文本的基线,并将其偏移该量,或者使用
drawAtPoint:forWidth:withFont:fontSize:lineBreakMode:baselineAdjustment:
,如下所示:


希望这能有所帮助。

你能举例说明你的意思吗?并可能包含一些代码。