我有一定大小的CATextlayer和未知长度的NSAttributedString文本。

我需要调整字体大小,以使文本适合框架(反之亦然:)

任何想法从哪里开始? :)

正如nall指出的,[编辑]我可以确定字符串的长度,当然,这是用户输入的一些文本,我需要将其放入固定大小的盒子中。

最佳答案

我做到了这一点:

    float fontSize = InitialFontSize;
    UIFont *myFont = [UIFont boldSystemFontOfSize:fontSize];
    CGSize myFontSize = [YourTextHere sizeWithFont:myFont];
    while (myFontSize.width >= MaximunWidth) {
        fontSize -= 0.1f;
        myFont = [UIFont boldSystemFontOfSize:fontSize];
        myFontSize = [YourTextHere sizeWithFont:myFont];
    }
    CATextLayer *textLayer = [CATextLayer layer];
    [textLayer setFrame:CGRectMake(MaximunWidth - myFontSize.width / 2, MaximunHeight - myFontSize.height / 2, myFontSize.width, myFontSize.height)];
    [textLayer setFontSize:fontSize];
    [textLayer setString:YourTextHere];

    [textLayer setAlignmentMode:kCAAlignmentCenter];

关于ios - CATextlayer更改FONT的大小以适合框架,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11059061/

10-11 14:42