簡體   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