をできたあなたはこのような何かができれば、まだ両方のラベルのフルテキストを表示していました:
1:かどうかをチェックするために拡張機能を追加しますあなたのラベルは切り捨てられます
extension UILabel {
var isTruncated: Bool {
guard let labelText = text else {
return false
}
let labelTextSize = (labelText as NSString).boundingRect(
with: CGSize(width: frame.size.width, height: .greatestFiniteMagnitude),
options: .usesLineFragmentOrigin,
attributes: [NSFontAttributeName: font],
context: nil).size
return labelTextSize.height > bounds.size.height
}
}
2:元の文字列を格納する辞書を追加します
var dict = [Int:Any]()
3:あなたはあなたのラベルを追加
let label = UILabel(frame: CGRect(x: 0, y: 0, width: 30, height: 50))
label.text = "This is text number A"
label.tag = 0
4(キーを表します)それらにタグを追加します。ラベルが切り捨てられた場合、それは彼らがデフォルト値を追加している場合は、チェックして、あなたの辞書に元の値を格納します。
if label.isTruncated {
dict.updateValue(label.text, forKey: label.tag)
label.text = "A"
}
5:
let original = dict[0] // for tag 0 for example
元の値を取り戻すために10