0

我想从任何像素开始向 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。

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

4

1 回答 1

0

使用此函数为 UILabel 创建一个类别:

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

像这样称呼它:[myLabel expectedLabelSize];

于 2013-09-15T19:22:35.007 回答