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

And*_*rew 2 graphics layout cocoa-touch uilabel ios

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

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

小智 6

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

希望这可以帮助.