gpt4 book ai didi

ios - swift 4 中带有文本字段和标签的自定义控件

转载 作者:行者123 更新时间:2023-11-30 11:55:40 24 4
gpt4 key购买 nike

我正在尝试创建一个 @IDesignable 自定义控件,其中包含 UITextFieldUILabel。我创建了 UIView 和 UITextFieldDelegate 的子类。在此类的方法 awakeFromNib() 中,我创建 textField 并使用 addSubview() 将其添加到 View 中。在 Storyboard上的主 ViewController 中,我添加了一个 View 控件并将其类设置为我的新类。但什么也没发生。我没有看到文本字段。这是我的代码:

@IBDesignable class CTextField: UIView, UITextFieldDelegate {
var textField: UITextField?
var label: UILabel?

@IBInspectable var placeHolderText: String = "" {
didSet {
textField?.placeholder = placeHolderText
}
}

override func awakeFromNib() {
textField = UITextField(frame: CGRect(x: 20, y: 100, width: 300, height: 40))
textField?.placeholder = placeHolderText

self.addSubview(textField!)
}}

我应该在哪里创建文本字段?在我的类 CTextField 的哪个方法中?我应该重写绘制方法吗?

最佳答案

下一步你应该做:

  • 在 View Controller 中创建@IBOutlet weak var customTextFieldView: CTextField!
  • storyboard中连接customTextFieldView

enter image description here - 为您的 View 设置正确的约束:

enter image description here

  • 在 Storyboard中设置placeHolderText

最后像这样更新你的类:

@IBInspectable var placeHolderText: String = "" {
didSet {
textField?.placeholder = placeHolderText
updateView()
}
}
override func awakeFromNib() {
super.awakeFromNib()
}

func updateView() {
subviews.forEach { $0.removeFromSuperview() }

textField = UITextField(frame: CGRect(x: 0, y: 0, width: 300, height: 40))
textField?.backgroundColor = .red
textField?.placeholder = placeHolderText

self.addSubview(textField!)
}

关于ios - swift 4 中带有文本字段和标签的自定义控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47853236/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com