2

私が間違っている場合は、私を修正してください。

Core Text を使用して、キャラクターの境界矩形を正確に計算しようとしました。しかし、私が受け取った高さは常に、画面に描かれたキャラクターの実際の高さよりも大きかった. この場合、実際の高さは約 20 ですが、関数は何があっても 46 を返します。

誰かがこれに光を当てることができますか?

ありがとう。

ここにコードがあります

- (void)viewDidLoad{
    [super viewDidLoad];
    NSString *testString = @"A";
    NSAttributedString *textString =  [[NSAttributedString alloc] initWithString:testString attributes:@{
                                                                                                            NSFontAttributeName: [UIFont fontWithName:@"Helvetica" size:40]
                                                                                                            }];
    NSTextStorage *textStorage = [[NSTextStorage alloc] initWithAttributedString:textString];
    NSLayoutManager *textLayout = [[NSLayoutManager alloc] init];
    // Add layout manager to text storage object
    [textStorage addLayoutManager:textLayout];
    // Create a text container
    NSTextContainer *textContainer = [[NSTextContainer alloc] initWithSize:self.view.bounds.size];
    // Add text container to text layout manager
    [textLayout addTextContainer:textContainer];

    NSRange range = NSMakeRange (0, testString.length);

    CGRect boundingBox = [textLayout boundingRectForGlyphRange:range inTextContainer:textContainer];

    //BoundingBox:{{5, 0}, {26.679688, 46}}
    // Instantiate UITextView object using the text container
    UITextView *textView = [[UITextView alloc] initWithFrame:CGRectMake(20,20,self.view.bounds.size.width-20,self.view.bounds.size.height-20)
                                      textContainer:textContainer];
    // Add text view to the main view of the view controler

    [self.view addSubview:textView];
}
4

1 に答える 1