Xcode中字符的宽度(以像素为单位)

时间:2013-09-15 18:39:37

标签: ios

我想从任何像素开始向iPad屏幕写一个字符。我遇到的问题是确定最后一个字符的宽度,以便我可以定位下一个字符。这是我的代码。

NSString *mathText = @"#h23#D45 73#";
//const char *mathTextStr = "#F23#D45   73#";
UIFont * font = [UIFont fontWithName:@"Times" size:15];
CGContextSetTextPosition( myContext, 100, 100 );
for (int i = 0; i < mathText.length; i++) {
    len = 1;
    NSString *subString = [mathText substringWithRange:NSMakeRange(i, 1)];
    const char *oneChar = [subString UTF8String];
    //CGContextShowTextAtPoint(myContext, x, y,oneChar , 1);
    CGContextShowText(myContext, oneChar, 1);
    CGSize charWidth = [subString sizeWithFont:font];

    x=x+charWidth.width+3;
     NSLog(@"x coordinate = %f", x);
    CGContextSetTextPosition( myContext, x, y );
    }

问题是字符似乎与CGSize charWidth。

任何帮助表示赞赏。 感谢。

1 个答案:

答案 0 :(得分:0)

使用此功能为UILabel创建一个类别:

-(CGSize)expectedLabelSize{
    return [self.text sizeWithFont:self.font
                 constrainedToSize:self.frame.size
                     lineBreakMode:self.lineBreakMode];
}

称之为:[myLabel expectedLabelSize];