0

我有以下方法在 RectFrame(宽度 = 170,高度 = 30)中绘制文本(文本为“0%”,字体大小 = 30):

/* Draw String IOS 7 up */
-(void) drawString: (CGRect) contextRect withStr: (NSString *) string {
    NSMutableParagraphStyle *textStyle = [[NSMutableParagraphStyle defaultParagraphStyle] mutableCopy];
    textStyle.lineBreakMode = NSLineBreakByWordWrapping;
    textStyle.alignment = NSTextAlignmentCenter;

    UIFont *font = [UIFont systemFontOfSize:_textSize];
    UIColor* textColor = [UIColor grayColor];

    NSDictionary* stringAttrs = @{NSFontAttributeName:font, NSParagraphStyleAttributeName:textStyle, NSForegroundColorAttributeName:textColor};
    [string drawInRect:contextRect withAttributes:stringAttrs];
}

我无法发布图像结果,但结果是文本在框架顶部下方绘制了一些像素,但底部很好(文本底部与底部框架匹配),无论我如何调整框架的大小和文字,它总是在框架顶部下方绘制“某处”,有什么想法吗?

4

1 回答 1

0

这就是它的工作方式。它总是在矩形顶部下方绘制几个像素。

如果您想要更多地控制定位,您可以使用CTTypesetter和其他 Core Text API 来计算文本大小。这是一个“简单”的例子:

http://www.snip2code.com/Snippet/15903/Simple-CoreText-with-CTLineDraw-and-CTRu/

如果您要使用核心文本,请务必阅读 Apple 的文档:https ://developer.apple.com/library/ios/documentation/StringsTextFonts/Conceptual/CoreText_Programming/Overview/Overview.html#//apple_ref/doc /uid/TP40005533-CH3-SW1

于 2014-06-19T01:10:39.657 回答