From c50e351e88e13b051adcaa85b80231d57a94405d Mon Sep 17 00:00:00 2001 From: Riley Testut Date: Wed, 24 May 2023 17:30:38 -0500 Subject: [PATCH] =?UTF-8?q?Fixes=20CollapsingTextView=20=E2=80=9CMore?= =?UTF-8?q?=E2=80=9D=20button=20incorrectly=20appearing=20if=20lineCount?= =?UTF-8?q?=20=3D=3D=20maximumNumberOfLines?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AltStore/Components/CollapsingTextView.swift | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/AltStore/Components/CollapsingTextView.swift b/AltStore/Components/CollapsingTextView.swift index fb995221..e53cbe67 100644 --- a/AltStore/Components/CollapsingTextView.swift +++ b/AltStore/Components/CollapsingTextView.swift @@ -119,13 +119,13 @@ class CollapsingTextView: UITextView { if self.isCollapsed { - self.textContainer.maximumNumberOfLines = self.maximumNumberOfLines - let boundingSize = self.attributedText.boundingRect(with: CGSize(width: self.textContainer.size.width, height: .infinity), options: [.usesLineFragmentOrigin, .usesFontLeading], context: nil) - let maximumCollapsedHeight = font.lineHeight * Double(self.maximumNumberOfLines) + let maximumCollapsedHeight = font.lineHeight * Double(self.maximumNumberOfLines) + self.lineSpacing * Double(self.maximumNumberOfLines - 1) if boundingSize.height.rounded() > maximumCollapsedHeight.rounded() { + self.textContainer.maximumNumberOfLines = self.maximumNumberOfLines + var exclusionFrame = moreButtonFrame exclusionFrame.origin.y += self.moreButton.bounds.midY exclusionFrame.size.width = self.bounds.width // Extra wide to make sure it wraps to next line. @@ -135,6 +135,7 @@ class CollapsingTextView: UITextView } else { + self.textContainer.maximumNumberOfLines = 0 // Fixes last line having slightly smaller line spacing. self.textContainer.exclusionPaths = [] self.moreButton.isHidden = true