fixed bug in multiline label within UIbutton

Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
This commit is contained in:
Matt Bruce 2024-03-18 16:51:02 -05:00
parent 597753e3c0
commit 0258fba13b

View File

@ -106,12 +106,20 @@ open class TextLinkCaret: ButtonBase {
open override var intrinsicContentSize: CGSize {
guard let titleLabel else { return super.intrinsicContentSize }
// Calculate the titleLabel's intrinsic content size
let labelSize = titleLabel.sizeThatFits(CGSize(width: self.frame.width, height: CGFloat.greatestFiniteMagnitude))
let labelSize = titleLabel.sizeThatFits(CGSize(width: self.frame.width - (contentEdgeInsets.left + contentEdgeInsets.right), height: CGFloat.greatestFiniteMagnitude))
// Adjust the size if needed (add any additional padding if your design requires)
let adjustedSize = CGSize(width: labelSize.width + contentEdgeInsets.left + contentEdgeInsets.right,
height: labelSize.height + contentEdgeInsets.top + contentEdgeInsets.bottom)
return adjustedSize
}
open override func layoutSubviews() {
super.layoutSubviews()
// This ensures the titleLabel is correctly positioned within the button
titleLabel?.preferredMaxLayoutWidth = self.frame.width - (contentEdgeInsets.left + contentEdgeInsets.right)
super.layoutSubviews() // Calling super again to ensure layout is updated with preferredMaxLayoutWidth
}
}
extension TextLinkCaret {