How to set font size and name in Core Text software?

Below my code is broken into

CTFramesetterRef framesetter = CTFramesetterCreateWithAttributedString(currentText); 

I am trying to install a font, please help me. Thanks.

 +(void)drawText:(NSString*)textToDraw inFrame:(CGRect)frameRect { // CFStringRef stringRef = (__bridge CFStringRef)textToDraw; // Prepare the text using a Core Text Framesetter NSAttributedString *stringRef=[[[NSAttributedString alloc]initWithString:textToDraw attributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIFont boldSystemFontOfSize:12.0],(NSString*)kCTFontAttributeName, nil]]autorelease]; CFAttributedStringRef currentText =(__bridge CFAttributedStringRef)stringRef; CTFramesetterRef framesetter = CTFramesetterCreateWithAttributedString(currentText);// at this Line it giving me EXC_BAD_ACCESS CGMutablePathRef framePath = CGPathCreateMutable(); CGPathAddRect(framePath, NULL, frameRect); CFRange currentRange = CFRangeMake(0, 0); CTFrameRef frameRef = CTFramesetterCreateFrame(framesetter, currentRange, framePath, NULL); CGPathRelease(framePath); CGContextRef currentContext = UIGraphicsGetCurrentContext(); CGContextSetTextMatrix(currentContext, CGAffineTransformIdentity); CGContextTranslateCTM(currentContext, 0, frameRect.origin.y*2); CGContextScaleCTM(currentContext, 1.0, -1.0); CTFrameDraw(frameRef, currentContext); CGContextScaleCTM(currentContext, 1.0, -1.0); CGContextTranslateCTM(currentContext, 0, (-1)*frameRect.origin.y*2); CFRelease(frameRef); //CFRelease(currentText); CFRelease(framesetter); //CFRelease(stringRef); } 
+4
source share
1 answer

try it

 CTFontRef font = CTFontCreateWithName((CFStringRef)@"Helvetica", 16.0f, nil); CFAttributedStringSetAttribute(currentText,CFRangeMake(0, _stringLength-1),kCTFontAttributeName,font); 
+7
source

Source: https://habr.com/ru/post/1436072/


All Articles