为什么文本不从0,0开始?

时间:2013-06-04 13:02:21

标签: ios cocoa-touch layout graphics uilabel

iOS的这个问题一直困扰着我:

在设计时,我会按照我希望的方式展示我的元素。进入编码,我测量事物之间的距离,以正确放置每个元素。在图片上使用UIImageViewdrawRect:可以正常工作,并以合适的尺寸将其放置在正确的位置。然而,在文本上使用UILabeldrawRect:不会在正确的位置启动它 - 它只有几个像素。我最终回到Photoshop并测量它的距离,与它应该的距离进行比较,以便弄清楚我需要多少调整它的位置。每次我画文字时都必须这样做。我不知道这个问题的解决方案。

1 个答案:

答案 0 :(得分:6)

原因是在CGPoint (0, 0)处绘制文字是指定文字的基线,而不是左上角。您需要获取文本的基线,并将其抵消该数量,或使用此处指定的drawAtPoint:forWidth:withFont:fontSize:lineBreakMode:baselineAdjustment:http://developer.apple.com/library/ios/#documentation/uikit/reference/NSString_UIKit_Additions/Reference/Reference.html

希望这有帮助。