首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >iOS 7 sizeWithAttributes:替换字体大小:constrainedToSize

iOS 7 sizeWithAttributes:替换字体大小:constrainedToSize
EN

Stack Overflow用户
提问于 2013-10-03 03:18:49
回答 7查看 88.7K关注 0票数 133

如何从新的iOS 7方法CGSize返回多行文本sizeWithAttributes?

我希望这会产生与sizeWithFont:constrainedToSize相同的结果。

代码语言:javascript
复制
NSString *text = @"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus eu urna quis lacus imperdiet scelerisque a nec neque. Mauris eget feugiat augue, vitae porttitor mi. Curabitur vitae sollicitudin augue. Donec id sapien eros. Proin consequat tellus in vehicula sagittis. Morbi sed felis a nibh hendrerit hendrerit. Lorem ipsum dolor sit."

CGSize textSize = [text sizeWithAttributes:@{ NSFontAttributeName : [UIFont fontWithName:@"HelveticaNeue-Light" size:16.0] }];

此方法仅生成单行文本的高度。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2013-10-03 03:22:14

你可以试试这个:

代码语言:javascript
复制
NSDictionary *attributes = @{NSFontAttributeName: [UIFont fontWithName:@"HelveticaNeue" size:14]};
// NSString class method: boundingRectWithSize:options:attributes:context is
// available only on ios7.0 sdk.
CGRect rect = [textToMeasure boundingRectWithSize:CGSizeMake(width, CGFLOAT_MAX)
                                          options:NSStringDrawingUsesLineFragmentOrigin
                                       attributes:attributes
                                          context:nil];
票数 296
EN

Stack Overflow用户

发布于 2014-02-21 06:02:34

我是这样做的:

代码语言:javascript
复制
    // Get a font to draw it in
UIFont *font = [UIFont boldSystemFontOfSize: 28];

CGRect textRect;
NSDictionary *attributes = @{NSFontAttributeName: font};

// How big is this string when drawn in this font?
textRect.size = [text sizeWithAttributes:attributes];

// Draw the string
[text drawInRect:textRect withAttributes:attributes];
票数 23
EN

Stack Overflow用户

发布于 2015-03-04 09:09:02

这是我处理这两种情况的方法,属于NSString类别。

代码语言:javascript
复制
- (CGSize) sizeWithFontOrAttributes:(UIFont *) font {
    if (IS_IOS7) {
        NSDictionary *fontWithAttributes = @{NSFontAttributeName:font};
        return [self sizeWithAttributes:fontWithAttributes];
    } else {
        return [self sizeWithFont:font];
    }
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19145078

复制
相关文章

相似问题

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