【iOS】NSAttributedString 相关

本文详细介绍了NSAttributedString的关键属性,包括paragraphStyle的lineBreakMode、baselineOffset以及strokeColor和foregroundColor的组合使用。通过实例展示了如何设置文本居中、行间距以及创建描边效果。同时,文章强调了NSMutableAttributedString在需要修改属性时的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、富文本的相关属性字段: NSAttributedString.Key

(1)paragraphStyle

        let paraStyle = NSMutableParagraphStyle()
        paraStyle.alignment = .center
        paraStyle.lineSpacing = 20
        paraStyle.lineBreakMode = .byWordWrapping
lineBreakMode

只有当文本内容超出容器大小时才会起作用。

  • byWordWrapping: 默认,文本换行以work为单位
  • byCharWrapping: 文本换行以char为单位,当行尾的一个word放不下时,会按字符分开该word放到下一行
  • byClipping: 整体以word为换行单位,到最后一行仍放不下文本时,会截去多余的部分,可能导致word被拆分
  • byTruncatingHead/Middle/Tail: 最后一行还不能装下文本时,开头/中间/结尾用...表示

(2)baselineOffset

首先了解一下font的各个属性,日常初始化设置的是pointSize的大小,即字体大小:
在这里插入图片描述
baselineOffset表示fontlineHeightparagraphStylelineHeight上边界的垂直距离,设置之前一般通过paragraphStylemaximumLineHeightminimumLineHeight指定行高。值设为(paraStyle.maximumLineHeight - label.font.lineHeight) / 4表示居中,至于为什么不除2,官方也没有很明确的解释,可能是由于约束问题。

(3)strokeColor & foregroundColor

二者配合使用可做出下面这种文本效果(需要注意的是strokeWidth需要为负值,否则不起效果):

        let attributes: [NSAttributedString.Key: Any] = [
            .strokeWidth: -3,
            .strokeColor: UIColor.red,
            .foregroundColor: UIColor.yellow
        ]

在这里插入图片描述

2、初始化NSAttributedString

通过stringattributes初始化的NSAttributedString后续无法添加属性,需要用到NSMutableAttributedString

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值