首页 > 解决方案 > 单击分段时如何将文本字段扩展到全宽?

问题描述

我需要将第一段的文本字段“出发日期”扩展到全宽并隐藏附近的文本字段“返回”。

我尝试在这里如何在 Swift 中制作全宽 UITextField但文本字段宽度没有改变。

startDate.frame.size.width = UIScreen.main.bounds.width

文本字段的自动布局

在此处输入图像描述

文本字段行为的屏幕

在此处输入图像描述

在此处输入图像描述

标签: swifttextfield

解决方案


首先,我认为文本字段存在不需要的约束:

  • “尾随空格:结束日期”重复。
  • 如果您为前导和尾随设置约束,则无需为宽度“等于:结束日期”添加另一个约束。
  • 与上述相同的逻辑,由于您已经添加了固定高度约束,因此无需添加“Equal Height to: End Date”。

因此,在修复(删除额外的约束)之后,您应该在视图控制器中为前导和尾随约束添加 IBOutlets,然后您可以将它们的constant值编辑为 0.0。

class ViewController: UIViewController {

    //...

    @IBOutlet weak var dateTextFieldLeading: NSLayoutConstraint!
    @IBOutlet weak var dateTextFieldTrailing: NSLayoutConstraint!

    // call this method when needed
    func expandDateTextFieldWidth() {
        dateTextFieldLeading.constant = 0.0
        dateTextFieldTrailing.constant = 0.0
    }

    //...
}

推荐阅读