Kit*_*une 2 objective-c nsattributedstring ios
我正在使用iOS的富文本编辑器,使用UITextView和NSAttributedString.它的功能与传统的相似(即选择区域,单击按钮,并将该效果应用于该区域,同时保留文本上的任何其他属性.
不幸的是NSAttributedString,并非所有这些都可以独立调整.其中一些(至少是粗体,字体和字体大小)都需要传递a UIFont,这将为该区域设置所有这些属性(即使您只想设置一个).看作单个区域可能包括多个面和大小,这将导致天真的方法打破了许多现有的格式.
有没有推荐的方法来实现这一目标?我认为我唯一的选择是遍历我想要应用它的区域的属性,将其分组为具有相同其他字体属性的块,然后单独应用于每个块.
您有正确的想法,并且已经为您提供了算法enumerateAttribute:inRange:options:usingBlock:.要使用它来处理字体运行:
[myAttributedString enumerateAttribute:NSFontAttributeName
inRange:selectedRange
options:NSAttributedStringEnumerationLongestEffectiveRangeNotRequired
usingBlock:addBoldBlock
]
Run Code Online (Sandbox Code Playgroud)
其中addBoldBlock获取当前字体(作为块的第一个参数提供),添加粗体,并将其应用于当前块(作为块的第二个参数提供).
| 归档时间: |
|
| 查看次数: |
2032 次 |
| 最近记录: |