いつもお世話になっております。
現在Swiftでアプリ開発を行っております。
タイトル通りなのですが、下記コードのようにLabelにPaddingを使用したあとに、SizeToFitを行った場合正しい高さが取れず、テキストに表示できない部分ができてしまいます。
Paddinを用いた場合SizeToFitを正しくするにはどのようにしたら良いのでしょうか。テキストが全て表示できているかを判定できるメソッドなどはあるのでしょうか。
ご教示いただけますと幸いです。
よろしくお願いいたします。
Swift
1 2class PaddingLabel: UILabel { 3 4 @IBInspectable var padding: UIEdgeInsets = UIEdgeInsets(top: 4, left: 8, bottom: 4, right: 8) 5 6 override func drawText(in rect: CGRect) { 7 let newRect = UIEdgeInsetsInsetRect(rect, padding) 8 super.drawText(in: newRect) 9 } 10 11 override var intrinsicContentSize: CGSize { 12 var contentSize = super.intrinsicContentSize 13 contentSize.height += padding.top + padding.bottom 14 contentSize.width += padding.left + padding.right 15 return contentSize 16 } 17 18} 19 20let label = PaddingLabel(frame: CGRect(x:0 y: 0, width:400 , height: 100)) 21label.text = "長い文章・・・・・・・・" 22label.sizeToFit() 23// 正しく表示できない 24
回答1件
あなたの回答
tips
プレビュー