NSMutableAttributedString *res = [self.richTextEditor.attributedText mutablecopy];[res beginEditing];__block BOol found = NO;[res enumerateAttribute:NSFontAttributename inRange:NSMakeRange(0,res.length) options:0 usingBlock:^(ID value,NSRange range,BOol *stop) { if (value) { UIFont *oldFont = (UIFont *)value; UIFont *newFont = [oldFont FontWithSize:oldFont.pointSize * 2]; [res removeAttribute:NSFontAttributename range:range]; [res addAttribute:NSFontAttributename value:newFont range:range]; found = YES; }}];if (!found) { // No Font was found - do something else?}[res endEditing];self.richTextEditor.attributedText = res;
我试图通过迭代每个属性来更改NSMutableAttributedString中的字体.我很高兴听到有更好的方法,但如果有人能帮助我翻译上述内容,我会感到非常满意.
解决方法 这是一个基本的实现.这对我来说似乎很简单,你没有提供你的尝试,所以我不确定你是否有类似的东西,它有问题,或者如果你刚刚接触Swift.一个区别是这个实现使用可选的转换(如?),我这样做是为了演示这个概念.实际上,这不需要是可选的,因为NSFontAttributename保证提供UIFont.
var res : NSMutableAttributedString = NSMutableAttributedString(string: "test");res.beginEditing()var found = falseres.enumerateAttribute(NSFontAttributename,inRange: NSMakeRange(0,res.length),options: NSAttributedStringEnumerationoptions(0)) { (value,range,stop) -> VoID in if let oldFont = value as? UIFont { let newFont = oldFont.FontWithSize(oldFont.pointSize * 2) res.removeAttribute(NSFontAttributename,range: range) res.addAttribute(NSFontAttributename,value: newFont,range: range) found = true }}if found == false {}res.endEditing()总结
以上是内存溢出为你收集整理的iOS – 如何在swift中使用`NSMutableString`全部内容,希望文章能够帮你解决iOS – 如何在swift中使用`NSMutableString`所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)