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 に答える