新线后重新安排UILabel

时间:2016-11-19 14:24:04

标签: swift view label

我有一个标签,它从文本字段中获取文本,并且在图像视图的宽度上有一个限制。我想在达到限制时添加新行。但是,我不能用“\ n”和wordwrapping函数来做。另外,我需要将UILabel的高度和宽度设置为精确的文本大小。我的意思是如果它有两条线高度应该只有两条线不多,并且对于width属性完全相同。

func textFieldShouldEndEditing(_ textField: UITextField) -> Bool {
   if(imageview.frame.width > label.frame.width + 2)
   {
    label_test.text = "\(label.frame.width)"
     label.text = textfield.text
        if(imageview.frame.width < label.frame.width + 20)
        {
            label.lineBreakMode = .byWordWrapping
            label.text = textfield.text! + "\n"
            label.textAlignment = NSTextAlignment.center;
        }
    }
    return true
}

1 个答案:

答案 0 :(得分:0)

为什么你不能使用lineBreakMode?在我看来,你应该在viewDidLoad中定义一个基本设置:

func viewDidLoad() {
  //Your stuff
  label.frame.size.width = imageview.frame.width //Define max width
  label.numberOfLines = 0 //Set infinite number of lines
  label.lineBreakMode = .byWordWrapping
}

然后在你的textfieldShouldEndEditing中设置文本和高度

label.text = textfield.text
label.sizeToFit() //The height is adjusted