Swift 创建自定义UITextfield
如何创建自定义UITextfield?我创建了一个类,其中uitextfield是一个子类,然后我添加了一个标签,它会显示出来,但是这里没有显示边框(UIView),这是代码Swift 创建自定义UITextfield,swift,uitextfield,Swift,Uitextfield,如何创建自定义UITextfield?我创建了一个类,其中uitextfield是一个子类,然后我添加了一个标签,它会显示出来,但是这里没有显示边框(UIView),这是代码 import UIKit class borderedTextField: UITextField{ let viewz:UIView! = UIView() var border:UIView! = UIView() var name:UILabel! = UILabel() over
import UIKit
class borderedTextField: UITextField{
let viewz:UIView! = UIView()
var border:UIView! = UIView()
var name:UILabel! = UILabel()
override func draw(_ rect: CGRect) {
self.addSubview(viewz)
}
override func layoutSubviews() {
backgroundColor = UIColor.green
}
func placement(){
border.frame.size.height = 15
border.backgroundColor = UIColor.black
border.translatesAutoresizingMaskIntoConstraints = false
viewz.addSubview(border)
border.heightAnchor.constraint(equalToConstant: 15).isActive = true
border.widthAnchor.constraint(equalToConstant: 100)
border.leftAnchor.constraint(equalTo: viewz.leftAnchor, constant: 10).isActive = true
border.bottomAnchor.constraint(equalTo: viewz.bottomAnchor, constant: -5).isActive = true
name.text = "whatt"
name.textAlignment = .left
name.textColor = UIColor.black
name.translatesAutoresizingMaskIntoConstraints = false
viewz.addSubview(name)
name.widthAnchor.constraint(equalToConstant: 100)
name.heightAnchor.constraint(equalToConstant: 50)
name.leftAnchor.constraint(equalTo: viewz.leftAnchor, constant: 5).isActive = true
name.topAnchor.constraint(equalTo: viewz.topAnchor, constant: 10).isActive = true
}
}
我以编程的方式调用它(没有故事板),请让我知道如何在不使用故事板的情况下解决这个问题,我需要它是完整的代码
import UIKit
class signViewController: UIViewController,UITextFieldDelegate {
var animText:borderedTextField!
override func viewDidLoad() {
super.viewDidLoad()
let animText = borderedTextField()
animText.delegate = self
animText.placeholder = "click here"
animText.placement()
animText.frame = CGRect(x: 100, y: 500, width: 200, height: 90)
view.addSubview(animText)
}
}
您必须添加
init
override init (frame : CGRect) {
super.init(frame : frame)
self.placement()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
self.placement()
}
此外,边框的宽度未处于活动状态
border.widthAnchor.constraint(equalToConstant: 100).active = true
名副其实
name.widthAnchor.constraint(equalToConstant: 100).active = true
name.heightAnchor.constraint(equalToConstant: 50).active = true
编辑
变量边框:UIView!=UIView()它显示在文本字段的左上角,而不是底部。因为您将其约束为viewz。bottomAnchor更改为self.bottomAnchor,viewz也没有约束。我收到此错误“因为他们没有共同的祖先。约束或其锚定是否引用不同视图层次中的项?必须将self.addSubview(viewz)行放在placement函数中才能对其进行约束
border.leftAnchor.constraint(equalTo: self.leftAnchor, constant: 10).isActive = true
border.bottomAnchor.constraint(equalTo: self.bottomAnchor, constant: -5).isActive = true