以编程方式添加标签

时间:2017-07-11 09:43:18

标签: ios uilabel extension-methods

我希望在文本字段之上添加标签。因此,我正在使用扩展并创建标签程序,但我无法看到它。

扩展

extension UITextField{

    func addPlaceHolder(mainView: UIView, placeHolderText: String) -> UILabel {
        let label = UILabel()
        label.text = placeHolderText
        label.font = label.font.withSize(14)
        label.textColor = Colors.hintColor
        label.translatesAutoresizingMaskIntoConstraints=false
        mainView.addSubview(label)
        var leadingAnchorConst: NSLayoutConstraint?
        var centerConst: NSLayoutConstraint?

        if #available(iOS 9.0, *) {
            leadingAnchorConst = label.leadingAnchor.constraint(equalTo: self.leadingAnchor, constant:10)
        } else {
            // Fallback on earlier versions
        }
        if #available(iOS 9.0, *) {
            centerConst =  label.centerYAnchor.constraint(equalTo: self.centerYAnchor)
        } else {
            // Fallback on earlier versions
        }
        NSLayoutConstraint.activate([leadingAnchorConst!, centerConst!])
        return label
    }

}

的ViewController

class Test:UIViewController{

viewDidLoad(){
         emailPH =  tfEmail.addPlaceHolder(mainView: self.view, placeHolderText: "Email")
        passwordPH = tfPassword.addPlaceHolder(mainView: self.view, placeHolderText: "Password")
        print(passwordPH?.text ?? "")
}


}

2 个答案:

答案 0 :(得分:1)

试试这段代码:

extension UITextField{

func addPlaceHolder(mainView: UIView, placeHolderText: String) -> UILabel {
    let label = UILabel()
    label.text = placeHolderText
    label.font = label.font.withSize(14)
    label.textColor = UIColor.black
    label.translatesAutoresizingMaskIntoConstraints=false
    mainView.addSubview(label)
    var leadingAnchorConst: NSLayoutConstraint?
    var centerConst: NSLayoutConstraint?

    if #available(iOS 9.0, *) {
        leadingAnchorConst = label.leadingAnchor.constraint(equalTo: self.leadingAnchor, constant:10)
    } else {
        // Fallback on earlier versions
    }
    if #available(iOS 9.0, *) {
        centerConst =  label.centerYAnchor.constraint(equalTo: self.centerYAnchor)
    } else {
        // Fallback on earlier versions
    }
    NSLayoutConstraint.activate([leadingAnchorConst!, centerConst!])
    return label
}

}

答案 1 :(得分:0)

请检查此代码

 let codedLabel:UILabel = UILabel()
 codedLabel.frame = CGRect(x: 100, y: 100, width: 200, height: 200)
 codedLabel.textAlignment = .center
 codedLabel.text = alertText
 codedLabel.numberOfLines=1
 codedLabel.textColor=UIColor.red
 codedLabel.font=UIFont.systemFont(ofSize: 22)
 codedLabel.backgroundColor=UIColor.lightGray

 self.contentView.addSubview(codedLabel)
 codedLabel.translatesAutoresizingMaskIntoConstraints = false
 codedLabel.heightAnchor.constraint(equalToConstant: 200).isActive = true
 codedLabel.widthAnchor.constraint(equalToConstant: 200).isActive = true
 codedLabel.centerXAnchor.constraint(equalTo: 
 codedLabel.superview!.centerXAnchor).isActive = true
 codedLabel.centerYAnchor.constraint(equalTo: 
 codedLabel.superview!.centerYAnchor).isActive = true