繁体   English   中英

如何向 UITextField 的 rightView 内的 UIImageView 添加填充?

[英]How can I add padding to UIImageView that is inside of a rightView of a UITextField?

所以我在我的 UITextField 的右侧添加了一个 UIImageView,但我需要在右侧添加一点填充,这样它就不会一直锚定到右侧。 我尝试添加一个自定义框架,但没有奏效,所以我不太确定如何 go 获得该填充。 任何帮助将不胜感激。

请参阅此处的文本字段示例

let titleField : UITextField = {
        let titleField = UITextField()
        titleField.placeholder = "Title"
        titleField.textAlignment = .center
        titleField.backgroundColor = .white
        titleField.addDoneCancelToolbar()
        
        var imageView = UIImageView(frame: CGRect(x: 0, y: 0, width: 10, height: 10))
        let image = UIImage(systemName: "exclamationmark.circle")?.withTintColor(.systemRed, renderingMode: .alwaysOriginal)
        imageView.image = image
        titleField.rightView = imageView
        titleField.rightViewMode = .always
//        titleField.rightView?.isHidden = true
        
        return titleField
    }()

只需添加扩展名:

extension UITextField {
    func rightImage(_ image: UIImage?, imageWidth: CGFloat, padding: CGFloat) {
        let imageView = UIImageView()
        imageView.frame = CGRect(x: padding + 2, y: 0, width: imageWidth, height: frame.height)
        imageView.contentMode = .scaleAspectFit
        imageView.image = image
        let containerView = UIView(frame: CGRect(x: 0, y: 0, width: imageWidth + padding , height: frame.height))
        containerView.addSubview(imageView)
        rightView = containerView
        rightViewMode = .always
    }
}

要使用它:

if let image = UIImage(named: imagename + ".png") {
    titlefield.rightImage(image, imageWidth: 30, padding: 5)
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM