Don_Mag icon

Untitled

Don_Mag | PRO | 08/11/20 03:45:46 PM UTC | 0 ⭐ | 2721 👁️ | Never ⏰ | []
Swift |

2.9 KB

|

None

|

0 👍

/

0 👎

class TextFieldWTitle: UITextField {
    var titleText: String = "" {
        didSet {
            label.text = titleText
        }
    }
    var label = UILabel()
    
    override init(frame: CGRect) {
        super.init(frame: frame)
        self.genericConfigure()
    }
    
    init() {
        super.init(frame: CGRect.zero)
        self.genericConfigure()
    }
    
    required init?(coder: NSCoder) {
        super.init(coder: coder)
        self.genericConfigure()
    }
    
    func configure(text: String,
                   placeholder: String = "") {
        self.text = text
        self.placeholder = placeholder
        if #available(iOS 13.0, *) {
            self.applyStyle13()
        } else {
            self.applyStylePre13()
        }
    }
    
    func genericConfigure() {
        self.borderStyle = .none
        
        self.layer.borderWidth = 1.0
        self.layer.masksToBounds = false // true
        self.layer.cornerRadius = 4.0
        
        self.textAlignment = .left
        
        label.text = "First name"
        label.translatesAutoresizingMaskIntoConstraints = false
        addSubview(label)
        NSLayoutConstraint.activate([
            label.leftAnchor.constraint(equalTo: leftAnchor),
            label.bottomAnchor.constraint(equalTo: topAnchor),
            label.heightAnchor.constraint(equalToConstant: 20.0)
        ])
    }
    
    @available(iOS 13.0, *)
    func applyStyle13() {
        self.tintColor = UIColor.label
        self.backgroundColor = UIColor.white
        self.textColor = UIColor.label
        self.attributedPlaceholder = NSAttributedString(
            string: self.placeholder ?? "",
            attributes: [NSAttributedString.Key.foregroundColor: UIColor.tertiaryLabel])
    }
    
    func applyStylePre13() {
        self.tintColor = .yellow
        self.backgroundColor = UIColor.white
        self.textColor = .yellow
        self.attributedPlaceholder = NSAttributedString(
            string: self.placeholder ?? "",
            attributes: [NSAttributedString.Key.foregroundColor: UIColor.yellow])
    }
    
}
 
 
class TitleFieldViewController : UIViewController {
    override func loadView() {
        let view = UIView()
        
        view.backgroundColor = .white
        
        let stack = UIStackView()
        //stack.frame = CGRect(x: 150, y: 200, width: 200, height: 200)
        stack.distribution = .fill
        stack.axis = .vertical
        
        let t1 = TextFieldWTitle()
        t1.configure(text: "texta", placeholder: "placeholder")
        let t2 = TextFieldWTitle()
        t2.configure(text: "textb", placeholder: "placeholder")
        
        t2.titleText = "Last name"
        
        stack.addArrangedSubview(t1)
        stack.addArrangedSubview(t2)
        
        view.addSubview(stack)
        
        stack.translatesAutoresizingMaskIntoConstraints = false
        NSLayoutConstraint.activate([
            stack.topAnchor.constraint(equalTo: view.topAnchor, constant: 100),
            stack.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 100),
            stack.widthAnchor.constraint(equalToConstant: 200),
        ])
        
        self.view = view
 
        // run first *without* spacing
        // then run *with* spacing
        //stack.spacing = 40
    }
}
 
// Present the view controller in the Live View window
PlaygroundPage.current.liveView = TitleFieldViewController()
 

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎