Ich habe etwas Text, den ich über einen NSAttributedString (Code unten) in einen festen Rahmen zeichne. Im Moment bin ich hart um die Textgröße auf 16 zu kodieren. Meine Frage ist, gibt es eine Möglichkeit, die bestmögliche Größe für den Text für den gegebenen Rahmen zu berechnen?Berechne Schriftgröße, um Rahmen zu passen - Kerntext - NSAttributedString - iOS
- (void)drawText:(CGContextRef)contextP startX:(float)x startY:(float)
y withText:(NSString *)standString
{
CGContextTranslateCTM(contextP, 0, (bottom-top)*2);
CGContextScaleCTM(contextP, 1.0, -1.0);
CGRect frameText = CGRectMake(1, 0, (right-left)*2, (bottom-top)*2);
NSMutableAttributedString * attrString = [[NSMutableAttributedString alloc] initWithString:standString];
[attrString addAttribute:NSFontAttributeName
value:[UIFont fontWithName:@"Helvetica-Bold" size:16.0]
range:NSMakeRange(0, attrString.length)];
CTFramesetterRef framesetter = CTFramesetterCreateWithAttributedString((__bridge CFAttributedStringRef)(attrString));
struct CGPath * p = CGPathCreateMutable();
CGPathAddRect(p, NULL, frameText);
CTFrameRef frame = CTFramesetterCreateFrame(framesetter, CFRangeMake(0,0), p, NULL);
CTFrameDraw(frame, contextP);
}
Diese benutzerdefinierte UILabel verwendet dies. Ich denke, das kann helfen [https://github.com/vigorouscoding/KSLabel](https://github.com/vigorouscoding/KSLabel) –
Ich benutze kein UILabel, wie sie quadratisch sein müssen - das ist Text sein gezeichnet in eine 2D erstellte Quarzform. – GuybrushThreepwood
UILabels können quadratisch sein? – Ash