2016-03-16 45 views
0

我有一個UILabel,其字體大小將在捏手勢iOS swift上增加。我能夠增加字體大小,但有問題的視圖。 Thought sizeToFit()會根據需要增加高度和寬度,但不會反映在視圖上,即標籤在視圖中保持不變。隨着字體大小的增加,請幫助我增加標籤的大小。在捏手勢中增加字體大小

@IBAction func increaseTextFont(sender: UIPinchGestureRecognizer) { 
     var pinchScale = sender.scale 
     pinchScale = round(pinchScale * 1000)/1000.0 

     if (pinchScale < 1) { 
      testLabel.font = UIFont(name: "arial", size: testLabel.font.pointSize - pinchScale) 
     } 
     else{ 
      testLabel.font = UIFont(name: "arial", size: testLabel.font.pointSize + pinchScale) 
     } 
testLabel.frame.height * pinchScale)) 
     testLabel.frame.size.height *= pinchScale 
     testLabel.frame.size.width *= pinchScale 
     self.testLabel.layoutIfNeeded() 
     print(testLabel.frame.size.height) 
     print(testLabel.frame.size.width) 

    } 
+0

從故事板添加的標籤是否帶有自動佈局? –

+0

是的,我已經添加了自動佈局故事板 –

+0

然後,你不應該動態更新標籤框架。並確保您不應將高度限制設置爲標籤。 –

回答

4

我曾做過一個試驗示範演示的目的,你可以看到同樣的結果,

enter image description here

標籤的約束是如下,

enter image description here

您可能需要根據您必須設計的UI或需求更改約束,只需製作確定你不要設置標籤的高度約束,並且如果必須製作多行標籤,則應相應地設置約束和標籤屬性。

的縮放手勢的代碼,

@IBOutlet弱VAR labelTest:的UILabel!

@IBAction func increaseTextFont(sender: UIPinchGestureRecognizer) { 

    var pinchScale = sender.scale 
    pinchScale = round(pinchScale * 1000)/1000.0 

    if (pinchScale < 1) { 
     labelTest.font = UIFont(name: "arial", size: labelTest.font.pointSize - pinchScale) 
    } 
    else{ 
     labelTest.font = UIFont(name: "arial", size: labelTest.font.pointSize + pinchScale) 
    } 
} 

您還需要按照要求限制文本的增長。

希望這會幫助你。

+0

這是否解決了問題? –

+0

謝謝你的工作 –

+0

乾杯,快樂編碼。 –