swift 生成NSTextAttachment

可以根据以下方法生成NSTextAttachment

func textAttachment(fontSize: CGFloat, image: UIImage) -> NSTextAttachment {
        let font = UIFont.systemFont(ofSize: fontSize)
        let textAttachment = NSTextAttachment()
        textAttachment.image = image
        let mid = font.descender + font.capHeight
        textAttachment.bounds = CGRect(x: 0, y: font.descender - image.size.height / 2 + mid + 2, width: image.size.width, height: image.size.height).integral
        return textAttachment
    }

顺便写了一个抽象方法

func initAttribute(text: String, color: UIColor, _ attaches: NSTextAttachment...) -> NSMutableAttributedString {
        let attributes = NSMutableAttributedString(string: text)
        attributes.addAttributes([NSAttributedString.Key.foregroundColor : color, NSAttributedString.Key.font : UIFont.systemFont(ofSize: 14.0)], range: NSMakeRange(0, text.length))
        
        for attach in attaches {
            let attachStr = NSAttributedString(attachment: attach)
            attributes.append(attachStr)
        }
        return attributes
    }
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容