iOS NSString drawInRect始终在矩形框顶部下方绘制文本
我有一个在矩形框架(宽度=170,高度=30)中绘制文本的方法(文本为“0%”,字体大小=30):iOS NSString drawInRect始终在矩形框顶部下方绘制文本,ios,objective-c,nsstring,alignment,drawinrect,Ios,Objective C,Nsstring,Alignment,Drawinrect,我有一个在矩形框架(宽度=170,高度=30)中绘制文本的方法(文本为“0%”,字体大小=30): 我无法发布图像结果,但结果是文本在框架顶部下方绘制了一些像素,但底部很好(文本底部与底部框架匹配),并且无论我如何调整框架和文本的大小,它总是在框架顶部下方的“某处”绘制,有什么想法吗?这就是它的工作原理。它总是在矩形顶部下方绘制几个像素 如果您希望对定位有更多的控制,可以使用CTTypesetter和其他核心文本API来计算文本大小。下面是一个“简单”的例子: 如果要使用核心文本,请务必阅读苹
我无法发布图像结果,但结果是文本在框架顶部下方绘制了一些像素,但底部很好(文本底部与底部框架匹配),并且无论我如何调整框架和文本的大小,它总是在框架顶部下方的“某处”绘制,有什么想法吗?这就是它的工作原理。它总是在矩形顶部下方绘制几个像素 如果您希望对定位有更多的控制,可以使用
CTTypesetter
和其他核心文本API来计算文本大小。下面是一个“简单”的例子:
如果要使用核心文本,请务必阅读苹果的文档:
/* 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];
}