在 UITextField 的开头创建一个空格


要在 Swift 中在 UITextField 的开头创建空格,可以将文本字段的 leftView 属性设置为具有所需宽度的 UIView。默认情况下,UITextField 在左侧或右侧没有提供边距,这是拥有空间以获得更好用户界面的最常见需求。在本文中,您将看到一个关于如何在文本字段中添加左边距的示例。

在此示例中,我们首先创建一个视图控制器,然后创建一个电子邮件地址文本字段。首先,我们将看到默认文本字段的行为。

基本设置

示例

import UIKit
class TestController: UIViewController {
    
   private let emailTextField: UITextField = {
      let textField = UITextField()
      textField.placeholder = "Email Address"
      textField.translatesAutoresizingMaskIntoConstraints = false
      textField.layer.borderWidth = 1.0
      textField.layer.cornerRadius = 8.0
      textField.layer.borderColor = UIColor.gray.cgColor
      textField.layer.masksToBounds = true
      textField.keyboardType = .emailAddress
      textField.autocorrectionType = .no
      return textField
   }()
    
   override func viewDidLoad() {
      super.viewDidLoad()
      initialSetup()
   }
    
   private func initialSetup() {
        
      view.backgroundColor = .white
      navigationItem.title = "UITextField"
        
      view.addSubview(emailTextField)
        
      emailTextField.widthAnchor.constraint(equalToConstant: 250).isActive = true
      emailTextField.heightAnchor.constraint(equalToConstant: 50).isActive = true
      emailTextField.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
      emailTextField.centerYAnchor.constraint(equalTo: view.centerYAnchor).isActive = true
   }
}

输出

添加空格

示例

private func addPadding() {
   // Create a UIView to use as padding: You can create a new UIView to use as padding at the beginning of the text field. The width of this view will determine the amount of space you want to create.
   let paddingView = UIView(frame: CGRect(x: 0, y: 0, width: 10, height: 50))
    
   // Set the leftView property of the text field: You can set the leftView property of the text field to the padding view you created in step 2. This will ensure that the padding view is displayed at the beginning of the text field.
   emailTextField.leftView = paddingView
    
   // Set the leftViewMode property of the text field: You also need to set the leftViewMode property of the text field to .always. This will ensure that the padding view is always visible, even when there is no text in the text field.
   emailTextField.leftViewMode = .always
}

输出

在上面的函数中,您正在将 leftView 添加到 emailTextField。此外,您需要将 leftViewMode 属性设置为“始终”值。在 paddingView 中,您为视图提供初始框架以及等于 emailTextField(即 50)的高度。

请注意,您必须在 initialSetup() 之后立即调用 addPadding() 方法。

以下是在 UITextField 的开头创建空格时需要记住的一些其他要点

  • 填充视图的颜色 - 在我提供的示例代码中,填充视图的背景颜色设置为“透明”。如果需要,您可以为填充视图的可视背景选择任何颜色。

  • 填充视图将决定要在文本字段顶部添加多少空间。为了根据需要创建更多或更少的空间,您可以调整宽度。

  • 从右到左的语言 - 在为从右到左查看的语言(如阿拉伯语或希伯来语)创建应用程序时,您可能需要修改填充视图和文本方向。

  • 自动布局 - 若要确保在使用自动布局时 UI 组件的位置正确,您可能需要修改文本字段和填充视图的约束。

  • 辅助功能 - 请注意,向文本框添加填充可能会使某些有特定限制(例如视力障碍)的人更难使用。考虑找到实现相同目标的不同方法或提供一个切换按钮来禁用边距。

结论

总之,在 iOS 中在 UITextField 的开头创建空格是一项简单的任务,可以通过将文本字段的 leftView 属性设置为具有所需宽度的 UIView 并将 leftViewMode 属性设置为 .always 来实现。务必牢记填充视图的宽度和颜色,以及从右到左的语言、自动布局和辅助功能方面的考虑因素。通过遵循这些指南,您可以创建一个功能齐全、易于访问且视觉上吸引人的文本字段。

更新于: 2023年5月4日

2K+ 浏览量

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告