UITextfield文本超越了界限

时间:2017-11-26 05:29:36

标签: swift uitextfield ios11

如何保持文本字段的文本超出其可显示的范围?

enter image description here

我正在尝试使文本字段的宽度随着文本内部的文本增长而增长,但文本字段的文本仍然超出范围。

1 个答案:

答案 0 :(得分:1)

试试这个:

func getWidth(text: String) -> CGFloat {
    let txtField = UITextField(frame: .zero)
    txtField.text = text
    txtField.sizeToFit()
    return txtField.frame.size.width
}

func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
    let txtFieldWidth = getWidth(textField.text!)

    if UIScreen.mainScreen().bounds.width - 100 > txtFieldWidth {
        txtWidthOfName.constant = 0.0
        if txtFieldWidth > txtWidthOfName.constant {
            txtWidthOfName.constant = txtFieldWidth
        }
        self.view.layoutIfNeeded()
    }
    return true
}