Advertisement
Guest User

Untitled

a guest
Feb 21st, 2017
2,134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 2.02 KB | None | 0 0
  1. import UIKit
  2.  
  3. @IBDesignable
  4. class DesignableUITextField: UITextField {
  5.    
  6.     // Provides left padding for images
  7.     override func leftViewRect(forBounds bounds: CGRect) -> CGRect {
  8.         var textRect = super.leftViewRect(forBounds: bounds)
  9.         textRect.origin.x += leadingPadding
  10.         return textRect
  11.     }
  12.    
  13.     // Provides right padding for images
  14.     override func rightViewRect(forBounds bounds: CGRect) -> CGRect {
  15.         var textRect = super.rightViewRect(forBounds: bounds)
  16.         textRect.origin.x -= leadingPadding
  17.         return textRect
  18.     }
  19.    
  20.     @IBInspectable var leadingImage: UIImage? {
  21.         didSet {
  22.             updateView()
  23.         }
  24.     }
  25.    
  26.     @IBInspectable var leadingPadding: CGFloat = 0
  27.    
  28.     @IBInspectable var color: UIColor = UIColor.lightGray {
  29.         didSet {
  30.             updateView()
  31.         }
  32.     }
  33.    
  34.     @IBInspectable var rtl: Bool = false {
  35.         didSet {
  36.             updateView()
  37.         }
  38.     }
  39.    
  40.     func updateView() {
  41.         rightViewMode = UITextFieldViewMode.never
  42.         rightView = nil
  43.         leftViewMode = UITextFieldViewMode.never
  44.         leftView = nil
  45.        
  46.         if let image = leadingImage {
  47.             let imageView = UIImageView(frame: CGRect(x: 0, y: 0, width: 20, height: 20))
  48.             imageView.image = image
  49.             // 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".
  50.             imageView.tintColor = color
  51.            
  52.             if rtl {
  53.                 rightViewMode = UITextFieldViewMode.always
  54.                 rightView = imageView
  55.             } else {
  56.                 leftViewMode = UITextFieldViewMode.always
  57.                 leftView = imageView
  58.             }
  59.         }
  60.        
  61.         // Placeholder text color
  62.         attributedPlaceholder = NSAttributedString(string: placeholder != nil ?  placeholder! : "", attributes:[NSForegroundColorAttributeName: color])
  63.     }
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement