iOS开发:Attributed String属性未正常显示问题求助
问题描述
我有一段包含自定义<link>标签的文本,格式示例如下:
"My firstand second"
我编写了一个Swift函数,接收存储完整<link>标签(含href属性和内部文本)的字符串数组,目标是给标签内的文本添加下划线、指定颜色,同时实现链接跳转功能。函数代码如下:
private func setUrlAndStyleToEachLinkText(arrayOfLinks: [String], font: UIFont){ for link in arrayOfLinks { var linkAsNSString = link as NSString if (hasHref(linkString: linkAsNSString)) { // Cleaning whitespaces linkAsNSString = linkAsNSString.replacingOccurrences(of: " ", with: "") as NSString let closedOpenTagPosition = linkAsNSString.range(of: "'>", options: String.CompareOptions.literal) let hrefPosition = linkAsNSString.range(of: "href='") // Obtaining url from href hrefUrl = linkAsNSString.substring(with: NSUnionRange(NSRange(location: hrefPosition.location + hrefPosition.length, length: 0), NSRange(location: closedOpenTagPosition.location, length: 0))) // Obtaining link text to apply tap gesture let linkText = linkAsNSString.substring(with: NSUnionRange(NSRange(location: closedOpenTagPosition.location + closedOpenTagPosition.length, length: 0), NSRange(location: link.count - 8, length: 0))) let attributes: [NSAttributedString.Key:Any] = [ NSAttributedString.Key.font: font, NSAttributedString.Key.underlineStyle: NSUnderlineStyle.single.rawValue, NSAttributedString.Key.underlineColor: self.underlineColor, NSAttributedString.Key.link: hrefUrl ] let attributedString = NSMutableAttributedString(string: linkText, attributes: attributes) } } }
但设置后,文本的样式属性并未显示,求助解决方法。
已解决
问题原因是未将创建好的富文本属性应用到正确的变量(比如显示用的UILabel/UITextView的attributedText),感谢@Larme的评论提示。
内容的提问来源于stack exchange,提问作者Albert Buigues
相关产品推荐
相关产品推荐

