使用xcode中的swift设置文本字段的填充

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用xcode中的swift设置文本字段的填充相关的知识,希望对你有一定的参考价值。

如何使用swift在文本字段的开头创建一些空间?我看了看帖子

padding of text field

我不明白子类正在做什么以及如何使用该类填充。

非常感谢你

答案

https://stackoverflow.com/a/27066764/846780

这个答案很清楚,

  1. 如果你继承qa​​zxswpoi,你可以覆盖UITextFieldtextRectForBoundseditingRectForBounds。这些方法只允许您在文本字段的标签中添加rect(框架)。
  2. placeholderRectForBounds方法创建将添加到textfield标签的rect(框架)。
  3. 最后你的填充是:newBounds
  4. 现在您有一个自定义UITextField,它具有自定义填充。
  5. 例如,如果您创建新的子类,例如let padding = UIEdgeInsets(top: 0, left: 5, bottom: 0, right: 5);,则只需要更改已添加到IB文件中的UITextField的类。

class MyTextField: UITextField

另一答案

补充klevison-matias的答案这是我在Swift 3中向TextField添加填充时使用的代码

enter image description here

然后在我的TextField中我以这种方式使用:

//UITextField : override textRect, editingRect 
class LeftPaddedTextField: UITextField {

    override func textRect(forBounds bounds: CGRect) -> CGRect {
        return CGRect(x: bounds.origin.x + 10, y: bounds.origin.y, width: bounds.width, height: bounds.height)
    }

    override func editingRect(forBounds bounds: CGRect) -> CGRect {
        return CGRect(x: bounds.origin.x + 10, y: bounds.origin.y, width: bounds.width, height: bounds.height)
    }

}
另一答案

创建TextField插座并使用以下代码。说“nameTextField”必须添加填充。

let emailTextField: LeftPaddedTextField = {
    let textField = LeftPaddedTextField()
    textField.placeholder = "Enter email"
    textField.layer.borderColor = UIColor.lightGray.cgColor
    textField.layer.borderWidth = 1
    textField.keyboardType = .emailAddress
    return textField
}()

let passwordTextField: LeftPaddedTextField = {
    let textField = LeftPaddedTextField()
    textField.placeholder = "Enter password"
    textField.layer.borderColor = UIColor.lightGray.cgColor
    textField.layer.borderWidth = 1
    textField.isSecureTextEntry = true
    return textField
}()

您可以在paddingView中添加Image。

另一答案

根据@Jorge Casariego的回答,我提出了这个解决方案。

您可以通过Interface Builder设置let paddingView = UIView(frame: CGRectMake(x: 0, y: 0, width: 30, height: 30)) nameTextField.leftView = paddingView nameTextField.leftViewMode = .always nameTextField.placeholder = "Enter Name" 类和所需的填充!

PaddedTextField
另一答案

完整代码示例:确保您的文本字段通过Storyboard指向圆角文本字段

class PaddedTextField: UITextField {

    @IBInspectable var padding: CGFloat = 0

    override func textRect(forBounds bounds: CGRect) -> CGRect {
        return CGRect(x: bounds.origin.x + padding, y: bounds.origin.y, width: bounds.width - padding * 2, height: bounds.height)
    }

    override func editingRect(forBounds bounds: CGRect) -> CGRect {
        return CGRect(x: bounds.origin.x + padding, y: bounds.origin.y, width: bounds.width - padding * 2, height: bounds.height)
    }
}

以上是关于使用xcode中的swift设置文本字段的填充的主要内容,如果未能解决你的问题,请参考以下文章

三个文本字段值的总和,无需单击按钮(Swift - Xcode)

如何使用 Swift 动态访问数组中的项目

点击文本字段时用选择器视图替换键盘(Swift、Storyboard、iOS 9、Xcode 7)

UIPickerview 多个文本字段 Xcode

日期选择器视图超小 - Swift Xcode

IOS – 在 Swift 中处理 OnetimeCode