2017-08-24 76 views
2

我正在構建一個應用程序,它看起來像一個簡單的問題,但我不能爲我的生活修復它。Auto size UITextView兼容性 - Swift 3

在屏幕上,我有大量的文本,通過UITextView提供。我希望它基本上是靜態的,沒有滾動條。

如果我在設計視圖中手動調整它的大小,並在iPhone 7上運行它,則文本很適合。但是,如果我在iPhone 5c上運行它,由於屏幕尺寸太小,然後自然減少它並添加滾動。

有沒有一種方法可以告訴文本將其全部顯示並相應調整其大小,類似於SizeToFit()命令?

+0

使用'UITextView.scrollEnabled = FALSE' –

+0

通過代碼:啓用滾動,然後的setText,然後讀取contentSize(申請再根據它的一些約束),然後禁用滾動? – Larme

+0

那會不會禁用滾動?或者它會自動調整UITextView輸出大小以適應尺寸? –

回答

1

只要使用標籤,如果你不想滾動的行爲。如果標籤不夠大

label.adjustsFontSizeToFitWidth = true 
label.numberOfLines = 0 

這將修復的字體大小。

+0

這很好,謝謝。 –

0

分配約束(微紅色線條截圖)到您的UITextView然後它會適合所有尺寸正確 enter image description here

而像@Orkhan Alikhanov說,使用UITextView.scrollEnabled = FALSE - 禁用TextView的內部滾動

0

如果你不想滾動你爲什麼使用文本字段而不是標籤?無論哪種方式,您可以使用這裏的答案UIDevice currentDevice model possible values來確定您正在使用的設備,然後您可以根據該信息設置字體大小。

我建議創建一個函數來完成這個計算,然後返回字體大小,這樣你就可以在設置字體時調用它。

+0

如果我使用標籤,它只保留在一行上。我沒有意識到你可以在標籤上有段落? –

+0

如果您將標籤線設置爲0,則會調整高度以顯示所有內容。您還需要確保您的約束允許它增長,並且它沒有確切的高度限制。 – CSjunkie