【问题标题】:How to set the leftview location on UITextfield to be close to the placehoder text如何将 UITextfield 上的左视图位置设置为靠近占位符文本
【发布时间】:2023-03-12 07:00:01
【问题描述】:

我使用 UITextfield 作为搜索字段以允许用户过滤内容。当用户打开 UI 时,UITextField 将在文本字段的中心显示一个占位符消息“搜索”。我想在占位符文本之前添加一个左视图图标(见下面的代码)。 leftwiew 图标将显示在文本字段的最左侧。我想把它放在正文之前。我怎样才能找到合适的位置呢?

searchText.placeholder = "Search"
    searchText.leftView = UIImageView(image: UIImage(named: "cion_03.png"))
    searchText.leftView?.contentMode = .ScaleAspectFit
    searchText.leftViewMode = .Always

【问题讨论】:

  • 您当前的代码有什么问题?发布解释问题的屏幕截图。
  • 你发现了吗?

标签: ios swift uitextfield


【解决方案1】:

您忘记设置视图框架。尝试为您的图像设置正确的x 位置。

let icon = UIImageView(image: UIImage(named: "cion_03"))
icon.frame = CGRectMake(0.0, 0.0, icon.image.size.width+10.0, icon.image.size.height);
icon.contentMode = UIViewContentMode.Center
self.textField.leftView = icon;
self.textField.leftViewMode = UITextFieldViewMode.Always

【讨论】:

    【解决方案2】:

    对于这种级别的自定义,您最好的选择是继承UITextField。您将能够修改占位符文本的框架,以修改其位置。

    您应该覆盖placeholderRectForBounds:。更改后,您可能会发现需要覆盖 textRectForBounds: 以匹配占位符文本位置。

    我已经看到这种方法成功使用,以适应某些字体。

    【讨论】:

      【解决方案3】:

      我花了一天时间尝试使用 UITextField 子类来做到这一点。它主要工作,但我还需要在编辑时将文本对齐方式从居中更改为左对齐。我最终通过将图像视图限制在文本字段的前面解决了这个问题,并且效果很好。我什至能够为它们来回设置动画。

      【讨论】:

        猜你喜欢
        • 2013-09-12
        • 2016-03-14
        • 2016-08-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-11-25
        • 1970-01-01
        • 2019-09-08
        相关资源
        最近更新 更多