Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import UIKit
- @IBDesignable
- class DesignableUITextField: UITextField {
- // Provides left padding for images
- override func leftViewRect(forBounds bounds: CGRect) -> CGRect {
- var textRect = super.leftViewRect(forBounds: bounds)
- textRect.origin.x += leadingPadding
- return textRect
- }
- // Provides right padding for images
- override func rightViewRect(forBounds bounds: CGRect) -> CGRect {
- var textRect = super.rightViewRect(forBounds: bounds)
- textRect.origin.x -= leadingPadding
- return textRect
- }
- @IBInspectable var leadingImage: UIImage? {
- didSet {
- updateView()
- }
- }
- @IBInspectable var leadingPadding: CGFloat = 0
- @IBInspectable var color: UIColor = UIColor.lightGray {
- didSet {
- updateView()
- }
- }
- @IBInspectable var rtl: Bool = false {
- didSet {
- updateView()
- }
- }
- func updateView() {
- rightViewMode = UITextFieldViewMode.never
- rightView = nil
- leftViewMode = UITextFieldViewMode.never
- leftView = nil
- if let image = leadingImage {
- let imageView = UIImageView(frame: CGRect(x: 0, y: 0, width: 20, height: 20))
- imageView.image = image
- // Note: In order for your image to use the tint color, you have to select the image in the Assets.xcassets and change the "Render As" property to "Template Image".
- imageView.tintColor = color
- if rtl {
- rightViewMode = UITextFieldViewMode.always
- rightView = imageView
- } else {
- leftViewMode = UITextFieldViewMode.always
- leftView = imageView
- }
- }
- // Placeholder text color
- attributedPlaceholder = NSAttributedString(string: placeholder != nil ? placeholder! : "", attributes:[NSForegroundColorAttributeName: color])
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement