首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS 8 boundingRectWithSize计算错误的文本大小

iOS 8 boundingRectWithSize计算错误的文本大小
EN

Stack Overflow用户
提问于 2014-11-27 01:32:14
回答 1查看 1K关注 0票数 0

我有一个字符串,它的长度会改变。我有一个固定宽度和高度的textView。我想找到最大的字体大小,将适合在这些界限内。我使用boundingRectWithSize。我假设一旦它给我一个比我的testRect更大的值,我就可以降低字体,我应该是好的。但是这个字符串对于我的textView来说太大了。即使testRect.size.height比我的textView.frame.size.height低,我也总是要把它降低2-4个点。

代码语言:javascript
复制
NSString *testString = @"This is a test string. Does it get biger?";

CGFloat height = self.textView.frame.size.height;
CGFloat width = self.textView.frame.size.width;
CGSize testSize = CGSizeMake(width, height);

CGFloat fontSize = 15;

NSDictionary *attrsDictionary;
CGRect testRect;

int i = 0;
while (i == 0) {
    attrsDictionary = @{NSFontAttributeName: [UIFont fontWithName:@"Helvetica" size:fontSize]};

    testRect = [testString boundingRectWithSize:testSize options:NSStringDrawingUsesLineFragmentOrigin attributes:attrsDictionary context:nil];

    if (testRect.size.height < testSize.height) {
        fontSize++;
    } else {
        fontSize--;
        self.textView.font = [UIFont fontWithName:@"Helvetica" size:fontSize];
        self.textView.text = testString;
        i = 1;
    }
}
EN

回答 1

Stack Overflow用户

发布于 2014-11-27 02:12:15

当你有一个完美的字体时,你的方法应该是有效的。不幸的是,完美的字体很少见,即使是系统字体通常也不是。这意味着你必须自己找到字体所需的调整……

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27155468

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档