Skip to content

Instantly share code, notes, and snippets.

@clbemre
Last active September 7, 2019 10:55
Show Gist options
  • Save clbemre/e04c1e6f30c0f6264fc5de2489fb68b4 to your computer and use it in GitHub Desktop.
Save clbemre/e04c1e6f30c0f6264fc5de2489fb68b4 to your computer and use it in GitHub Desktop.
Custom View init
class CustomView: UIView {
var floatingText: String = "" {
didSet {
self.floatingLabel.text = floatingText
}
}
var placeHolder: String = "" {
didSet {
self.textField.placeholder = placeHolder
}
}
var leftViewColor: UIColor = UIColor.init(red: 138 / 255, green: 15 / 255, blue: 116 / 255, alpha: 1) {
didSet {
self.setupProps()
}
}
var leftIcon: UIImage = UIImage(named: "icon_user")! {
didSet {
self.setupProps()
}
}
override func layoutSubviews() {
super.layoutSubviews()
}
func setupView() {
self.setupViewParentTextField()
self.setupFloatingLabel()
self.setupProps()
}
func setupProps() {
self.leftView.backgroundColor = leftViewColor
self.leftImageView.image = leftIcon
self.leftImageView.image = self.leftImageView.image?.withRenderingMode(.alwaysTemplate)
self.leftImageView.tintColor = .white
}
override init(frame: CGRect) {
super.init(frame: frame)
self.setupView()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
self.setupView()
}
// Floating Label
let floatingLabel: UILabel = {
let label = UILabel()
label.textColor = UIColor.init(red: 138 / 255, green: 15 / 255, blue: 116 / 255, alpha: 1)
label.font = UIFont.systemFont(ofSize: 12)
return label
}()
// Parent View for Input+Icon
let parentTextField: UIView = {
let view = UIView()
view.layer.cornerRadius = 25
view.clipsToBounds = true
view.layer.borderWidth = 0.5
view.layer.borderColor = UIColor.lightGray.cgColor
return view
}()
// Left View (Circle Background)
let leftView: UIView = {
let view = UIView()
return view
}()
// Left Icon
let leftImageView: UIImageView = {
let imageView = UIImageView()
return imageView
}()
// TextField
let textField: UITextField = {
let textField = UITextField()
textField.borderStyle = UITextField.BorderStyle.none
textField.font = UIFont.systemFont(ofSize: 14)
return textField
}()
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment