Releases: lixiang1994/AttributedString
修复视图附件小尺寸无效问题
修复当视图附件高度小于行高时无效的问题.
优化段落样式API
API
Changed:
AttributedString.Attribute:
old:
public static func paragraph(_ value: [ParagraphStyle]) -> Self
new:
public static func paragraph(with value: [ParagraphStyle]) -> Self
优化Pod配置
优化Pod配置
继续加强UILabel点击的精准性
New Version ヾ(@^▽^@)ノ 💥
加强了UILabel
点击的精准性, 完善了UILabel
的baselineAdjustment
属性对齐处理, 优化了单行时的对齐处理.
已知问题:
使TextKit
与UILabel
达到完全一致的排版布局是一件非常困难的事情, 经过几周的不断尝试和努力, 已经解决了大部分情况的问题, 但是依旧存在一些问题, 由于无法得知UILabel
内部真实的排版逻辑, 所以这件事变得异常艰辛与困难, 目前只能通过大量测试来尽可能达到一致, 为此我构建了一个专门测试UILabel的Debug页面 (详见Demo中).
以下是目前还未解决的问题, 如果你知道如何解决 欢迎提交PR🙏.
- 当
UILabel
的lineBreakMode
为byCharWrapping
时 会导致无法准确定位点击位置. - 当富文本中包含多个换行
\n\n\n
时 可能会导致点击位置不正确. - 当富文本中包含段落样式时, 同时在触发文本截断时或者文本字号缩放时, 会导致无法准确定位点击位置.
- 其他一些极端情况 主要和段落样式有关.
建议: 如果需要使用富文本点击相关的特性, 优先建议使用UITextView
.
特别鸣谢MPITextKit作者wanhmr提供的帮助.
重构UILabel的文本特殊处理 完美兼容adjustsFontSizeToFitWidth特性
New Version ヾ(@^▽^@)ノ 💥
重构了UILabel
内部的富文本特殊处理, 现在可以完美兼容adjustsFontSizeToFitWidth
特性了, 无论如何缩小可以精准定位touch位置.
有兴趣的同学可以查看源码来一探究竟 哈哈.
AttributedString.Checking增加attachment类型, 强化func observe
New Version ヾ(@^▽^@)ノ 💥
AttributedString.Checking
的case link
优先筛选NSAttributedString.Key.link
属性类型.
API
Changed:
AttributedString.Checking.Result:
old:
case action(AttributedString.Action.Result)
new:
case action(AttributedString.Action.Result.Content)
Add:
AttributedString.Checking:
case attachment
AttributedString.Checking.Result:
case attachment(NSTextAttachment)
UILabel / UITextView / NSTextField
func observe(_ checkings: [Checking] = .defalut, highlights: [Highlight] = .defalut, with callback: @escaping (NSRange, Checking.Result) -> Void)
iOS: UITextView增加视图附件(ViewAttachment)特性, 其他优化.
New Version ヾ(@^▽^@)ノ 💥
特性:
ViewAttachment
支持将自定义视图添加到富文本中 并在UITextView
中显示, 支持更改视图大小.
注意: 不要擅自修改自定义视图的center
和transform
属性.
优化:
附件垂直居中对齐 (应该是全网最准确的居中方案 😂不是无脑-4)
AttributedString.ViewAttachment: (Only supports iOS: UITextView)
textView.attributed.text = """
\(.view(xxxxView))
\(.view(xxxxView, .custom(size: .init(width: 200, height: 200))))
\(.view(xxxxView, .proposed(.center))).
"""
修复使用非系统字体导致的Label点击无效的问题.
Fix some fonts causing invalid clicks. #9
修复监听点击事件问题
1.5.1 修复监听点击事件问题