ContextLabel を使用して、@、#、およびURLを解析しています。これは私が見つけた最良のソリューションです。サイズが正しく、パフォーマンスには影響しません。最初に入力で文字列を解析し、それをNSAttributedString
に変換してから、attributedText
のUILabel
プロパティに割り当てます。尾の切り捨てを除いて、すべてが期待どおりに機能します-非常に不正確です(下の写真を参照)
どこから掘り始めますか-属性付き文字列の属性は間違っていますか?またはラベルのレイアウトの問題?ありがとう!
私はこの問題を抱えており、目的の改行モードを指定するNSParagraphStyle
を追加することで修正しました。
//assuming myString is an NSMutableAttributedString
let paragraphStyle = NSMutableParagraphStyle()
paragraphStyle.lineBreakMode = .byTruncatingTail
let range = NSRange(location: 0, length: myString.mutableString.length)
myString.addAttribute(NSParagraphStyleAttributeName, value: paragraphStyle, range: range)
詳細については、 NSMutableAttributedStringのワードラップ を参照してください。
以下は、AttributedTextまたは通常のテキストの使用に関係なく機能します。
AttributedTextとフォントをラベルに設定した後、以下の行を必ず追加してください:
label.lineBreakMode = .byTruncatingTail