我有一个标签,它从文本字段中获取文本,并且在图像视图的宽度上有一个限制。我想在达到限制时添加新行。但是,我不能用“\ 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
}
答案 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