2016-11-30 86 views
1

我搜索了這個問題,但是我找到的解決方案對我來說並不適用。我有一個文本框。當用戶將某些內容寫入文本字段時,會將其寫入標籤。當標籤達到imageview限制時,此標籤位於imageview上。我想要那個標籤wordwrap並去第二行。現在它是這樣但不起作用。Swift中的Wordwrap標籤

@IBAction func textchanged(_ sender: UITextField) { 
    if(mylabel.frame.minX < imageview.frame.minX && mylabel.frame.maxX > imageview.frame.maxX) 
    { 
    mylabel.frame = CGRect(x: mylabel.frame.origin.x, y: mylabel.frame.origin.y, width: mylabel.frame.width, height: mylabel.frame.height * 2) 
    mylabel.numberOfLines = 2 
    mylabel.lineBreakMode = NSLineBreakMode.byWordWrapping 
    mylabel.sizeToFit() 
    } 
    mylabel.numberOfLines = lines 
    mylabel.text = textfield.text 
    mylabel.sizeToFit() 
} 

screenshot

+3

嘗試這種情況:label.numberOfLines = 0 – TheAppMentor

回答

0

在委託函數嘗試更新標籤

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool 

而且看到的UITextField委託正確的廈門國際銀行成立

+0

它給此錯誤:'終止應用程序由於未捕獲的異常 'NSInvalidArgumentException',原因:「 - [instayaz2.ViewController textFieldShouldEndEditing:]:無法識別的選擇發送到實例0x7fed1640a7d0 '' –

+0

代表是這樣的; textfield.delegate = self textfield.addTarget(self,action:#selector(UITextFieldDelegate.textFieldShouldEndEditing(_ :)),for:UIControlEvents.editingChanged) panRecognizer.addTarget(self,action:#selector(ViewController.draggedView(_: ))) –

+0

try textfield.delegate = self –

0

刪除高度限制從標籤(如果已設置高度限制)

和使用此

label.lineBreakMode = NSLineBreakMode.ByWordWrapping 
label.numberOfLines = 0 
label.text = textfield.text 
+0

它沒有高度限制。 –

+0

然後這個答案應該很好.. –