UIFont设置

+ (UIFont *)preferredFontForTextStyle:(NSString *)style


style:

UIKIT_EXTERNNSString *const UIFontTextStyleHeadlineNS_AVAILABLE_IOS(7_0);

UIKIT_EXTERNNSString *const UIFontTextStyleBodyNS_AVAILABLE_IOS(7_0);

UIKIT_EXTERNNSString *const UIFontTextStyleSubheadlineNS_AVAILABLE_IOS(7_0);

UIKIT_EXTERNNSString *const UIFontTextStyleFootnoteNS_AVAILABLE_IOS(7_0);

UIKIT_EXTERNNSString *const UIFontTextStyleCaption1NS_AVAILABLE_IOS(7_0);

UIKIT_EXTERNNSString *const UIFontTextStyleCaption2NS_AVAILABLE_IOS(7_0);


+ (UIFont *)fontWithName:(NSString *)fontName size:(CGFloat)fontSize;

fontName:

NSArray *fontFamilies = [UIFontfamilyNames];

NSLog(@"%@",fontFamilies);



根据Rect设置Font size

int currentFontSize = 17.0;
    CGSize requiredSize = [str boundingRectWithSize:maxSize
                                            options:NSStringDrawingUsesFontLeading
                                         attributes:@{NSFontAttributeName : [UIFont systemFontOfSize:currentFontSize]}
                                            context:nil].size;
    if(requiredSize.height <= maxSize.height){
        while (requiredSize.height <= maxSize.height && requiredSize.width <= maxSize.width) {
            currentFontSize ++;
            requiredSize = [str boundingRectWithSize:maxSize
                                             options:NSStringDrawingUsesFontLeading
                                          attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:currentFontSize]}
                                             context:nil].size;
        }
    }else{
        while (requiredSize.height > maxSize.height || requiredSize.width > maxSize.height) {
            currentFontSize --;
            requiredSize = [str boundingRectWithSize:maxSize
                                             options:NSStringDrawingUsesFontLeading
                                          attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:currentFontSize]}
                                             context:nil].size;
            
        }
        requiredSize = [str boundingRectWithSize:maxSize
                                         options:NSStringDrawingUsesFontLeading
                                      attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:currentFontSize]}
                                         context:nil].size;
    }





在Swift中,我们可以使用UIFontDescriptor类的方法来设置字重。UIFontDescriptor类提供了一个字典来描述字体的特征,其中包括字重。 首先,我们可以创建一个基于系统字体的UIFontDescriptor实例,然后使用字典的方式来设置字重。以下是一个示例代码: ```swift let systemFontDescriptor = UIFont.systemFont(ofSize: 15).fontDescriptor // 创建一个包含字重设置的字典 let traits = [ UIFontDescriptor.TraitKey.weight: UIFont.Weight.bold // 设置为粗体 ] // 创建一个新的字体描述符,基于系统字体描述符和设置的字典 let descriptorWithWeight = systemFontDescriptor.addingAttributes([UIFontDescriptor.AttributeName.traits: traits]) // 根据新的字体描述符创建字体 let boldFont = UIFont(descriptor: descriptorWithWeight, size: 15) // 设置UILabel的字体为粗体 label.font = boldFont ``` 在上面的代码中,我们首先通过`UIFont.systemFont(ofSize: 15)`方法创建了一个系统字体的UIFontDescriptor实例。然后,我们使用[TraitKey.weight](https://developer.apple.com/documentation/uikit/uifontdescriptortraitkey/weight)字典的键来设置字体的粗细程度为[UIFont.Weight.bold](https://developer.apple.com/documentation/uikit/uifont/weight/bold)。接下来,我们使用[UIFontDescriptor.AttributeName.traits](https://developer.apple.com/documentation/uikit/uifontdescriptor/attributename/traits)来添加字典键值对到字体描述符中。 最后,我们通过创建UIFont实例并将其应用于UILabel的字体属性来设置字体的粗细。 这是在Swift中设置字重的一个简单示例,你可以根据需要进行调整和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值