我必須要改變的字體大小,雖然我做到這一點:UILabel動態改變字體大小並保持位置?
- 保持它在相同的位置
- 調節框架以適應居中。
當我做2號,它不會停留中心:
label.font = label.font.withSize(max*percentage)
label.sizeToFit()
如果我不這樣做,我將不得不改變框架,並發現它是如何動態地貼合字體。 有沒有任何優雅 2行的方式?
我必須要改變的字體大小,雖然我做到這一點:UILabel動態改變字體大小並保持位置?
當我做2號,它不會停留中心:
label.font = label.font.withSize(max*percentage)
label.sizeToFit()
如果我不這樣做,我將不得不改變框架,並發現它是如何動態地貼合字體。 有沒有任何優雅 2行的方式?
完成此操作:
let center:CGPoint=editedView.center // first take the center
label.font = label.font.withSize(max*percentage)
label.sizeToFit() // set right size
label.center=center //then set it back
如果要爲標籤保留相同的中心,則必須先定義一箇中心。您可以創建一個UIView
,然後將標籤置於視圖上,然後將clipToBounds
設置爲false。在這種情況下,您的標籤在視圖中居中。
這個UIView
實際上可以是任何東西。你只需要約束來告訴swift,當更新框架時,你的標籤居中關聯中心。下面是在我的視圖控制器爲中心的標籤的一例
我有一個時間,以增加每秒
func timerDidFire(timer: Timer) {
size += 5
label.font = label.font.withSize(CGFloat(size))
label.sizeToFit()
}
字體大小和模擬器結果
這會產生另一個問題,那麼標籤的高度會比字體大得多,並覆蓋所有視圖。 – Curnelious
@Curnelious我沒有得到你的觀點。此設置將確保文本的字體符合標籤。你沒有使用固定大小的標籤嗎?或者你有更新標籤框架的功能? –
高度將會更大,因爲只有當您移除sizeToFit並將其替換爲adjustFont時,解決方案纔會起作用。如果我保留sizeToFit,並附上您的解決方案,他將完全改變標籤的位置。 – Curnelious