0

次のスタック トレースがあり、coretext がクラッシュする理由がわかりません。

ここに画像の説明を入力

-(CGSize)sizeConstrainedToSize:(CGSize)maxSize fitRange:(NSRange*)fitRange {
    CTFramesetterRef framesetter = CTFramesetterCreateWithAttributedString
                                                ((CFAttributedStringRef)self);
    CFRange fitCFRange = CFRangeMake(0,0);
    CGSize sz = CTFramesetterSuggestFrameSizeWithConstraints
                      (framesetter,CFRangeMake(0,0),NULL,maxSize,&fitCFRange);
    if (framesetter) CFRelease(framesetter);
    if (fitRange) *fitRange = NSMakeRange(fitCFRange.location, fitCFRange.length);
    // take 1pt of margin for security
    return CGSizeMake( floorf(sz.width+1) , floorf(sz.height+1) ); 
}
4

2 に答える 2

0

の値は、ポインタではなく でkCTFontAttributeNameなければなりません。aをに変換するパブリック関数はないため、おそらく次のように を使用して作成する必要があります。CTFontRefUIFontUIFontCTFontRefCTFontCreateWithName

UIFont *uiFont = ...;
CTFontRef ctFont = CTFontCreateWithName((__bridge CFStringRef)uiFont.fontName, uiFont.pointSize, NULL);
于 2012-06-18T05:53:50.467 に答える