【问题标题】:Show UIImage inside UITextfield, tried but doesn't work在 UITextfield 中显示 UIImage,尝试但不起作用
【发布时间】:2017-08-31 22:52:19
【问题描述】:

我在我的项目中使用 xcode8.3 和 Swift3。

我在故事板中有一个 UITextField,我在相应的控制器类中创建了一个 IBOutlet:

@IBOutlet weak var myTextField: UITextField!

我想在文本字段的右侧显示一个小图像,我找到了solution here(尽管它在左侧显示图像)。

这是我尝试过的:

override func viewDidLoad() {
        super.viewDidLoad()

        let imageView = UIImageView();
        let image = UIImage(named: "my_icon");
        imageView.image = image;

        self.myTextField.rightView = imageView
        self.myTextField.rightViewMode = .always
  }

(在 xcode Assets.xcassets 文件夹中,我有 my_icon.png, my_icon@2x.png, my_icon@3x.png

当我在 iPhone 上运行代码时,我没有看到 my_icon 在 UITextField 中的任何位置显示。我还尝试在加载图像时添加“.png”后缀let image = UIImage(named: "my_icon.png");,它也没有帮助。

为什么链接中的解决方案对我不起作用?

【问题讨论】:

  • 这里有一堆关于stackoverflow.com/questions/27903500/…的信息
  • @GIJOW,我已经在我的问题中包含了这个链接,就像我说的,我试过了,它对我不起作用。
  • 澄清问题:image 为零吗?此外,您可能还想为imageView 设置一个框架。

标签: ios uiimageview uitextfield


【解决方案1】:

我有类似的问题,听起来很有趣,但它可能会导致问题。我相信你的 imageView 的 frame 是 0。

所以

    let imageView = UIImageView();
    let image = UIImage(named: "my_icon");
    imageView.image = image;
    imageView.frame = CGRect(x: 0, y: 0, width: imageView.intrinsicContentSize.width, height: imageView.intrinsicContentSize.height)
    self.myTextField.rightView = imageView
    self.myTextField.rightViewMode = .always

【讨论】:

  • 谢谢,它有效。顺便说一句,如果我以后想隐藏图像,将 rightViewMode 设置为 Never 更好还是隐藏图像更好?
  • @leem-fin :我个人更喜欢删除 rightView 然后将模式设置为从不,但将 rightView 的框架设置为 CGRect.zero 也可以。
  • 谢谢,还有一个问题,如何在图片的底部和右侧添加一些空间?
  • @leem-fin : 你尝试设置 ContentInset.设置 ContentInset.right 和 bottom 应该会有所帮助。我从来没有尝试过自己的猜测。
  • 谢谢!我会仔细研究一下。
【解决方案2】:

设置框架:

  imageView.frame = CGRect(x: 0, y: 0, width: 20, height: 20)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-05
    • 2021-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多