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

标签 ios cocoa-touch layout graphics uilabel

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

在设计时,我会按照我希望它们的外观来布置我的元素。进入编码阶段,我会测量事物之间的距离,以便正确放置每个元素。在图像上使用 UIImageViewdrawRect: 效果很好,并以正确的大小将其放在正确的位置。但是,在文本上使用 UILabeldrawRect: 并没有在正确的点开始它 - 它超出了几个像素。我最终回到 Photoshop 并测量它的距离,与它应该的距离相比,以便弄清楚我需要调整它的位置多少。每次绘制文本时我都必须这样做。有没有我不知道的解决这个问题的方法。

最佳答案

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

希望这对您有所帮助。

关于ios - 为什么文本不从 0,0 开始?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16918581/

相关文章:

iPhone - 获取两个日期之间的天数

css - 如何将 v-btn 放在 v-card 的中心并将其放在卡片边缘?

android - 父级 wraps_content 和子级 fills_parent 是什么意思?

ios - 使用复制属性会导致段错误

ios - 使用 iPod Library Access API 创建播放列表?

ios - 以编程方式访问 iPad 启动图像?

html - 类似于HTML中 "li"元素的红点

ios - 如何在 icarousel ios 中找到特定的索引?

ios - AFNetworking 可达性状态未改变

ios - 如何检查一个 SKSpriteNode 是否被点击