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