2017-06-19 38 views
0

我試圖用約束在故事板中用自定義字體縮小UITextView。我可以輕鬆地爲邊界和字體大小設置動畫。但是,由於它是一種自定義字體,因此在更大的尺寸下,字體更改變得相當不連貫。我想這可以通過改變UITextViewtransform來完成。但是,這似乎並不奏效。文本視圖的高度是自調整大小,但對寬度使用固定的常量(與字體大小/變換一起動畫)。這樣可以控制文本視圖行斷開的位置。用變換縮小UITextView

我試過以下所有建議的解決方案,但都沒有成功。視圖保持邊界但分辨率降低。或者邊界減小,但比顯示的字體大小更快,導致剪輯。

Scaling UITextView using contentScaleFactor property

我也試着放置文本視圖的placeholderview,我也動畫的高度/寬度約束乘數,以確保它的尺寸減小。

回答

0

通過將我的UITextView放置在佔位符UIView中,並設置對齊中心X/Y +等寬/高約束來解決此問題。

我也動畫到multiplier這些視圖之間的寬度/高度約束與當前變換比例的倒數。這是爲了補償變換的縮放。

textViewWidthConstraint = textViewWidthConstraint.withMultiplier(1/scale) 
textViewHeightConstraint = textViewHeightConstraint.withMultiplier(1/scale) 
placeholderView.transform = CGAffineTransform(scaleX: scale, y: scale) 

其中功能withMultiplier是https://stackoverflow.com/a/33003217/511299用於編輯約束乘法器呈現的解決方案的一個重命名。