我知道这可能是最基本的问题,但我对斯威夫特还不熟悉。
另外,我也尝试过各种解决方法,但都无法解决这个问题。
如果有人能帮我解决问题。
我有一个自定义的UIVIEW类,如下所示:
class SearchTextFieldView: UIView, UITextFieldDelegate{
public var searchText = UITextField()
override init(frame: CGRect) {
super.init(frame: frame)
initializeUI()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
initializeUI()
}
func initializeUI() {
searchText.placeholder = "Enter model no"
searchText.backgroundColor = UIColor.white
searchText.textColor = UIColor.darkGray
searchText.layer.cornerRadius = 5.0
searchText.delegate=self
self.addSubview(searchText)
}
override func layoutSubviews() {
searchText.frame = CGRect(x: 20.0, y: 5.0, width: self.frame.size.width - 40,height : self.frame.size.height - 10)
}
}
现在,我要将另一个类的text设置为SearchText textfield,如下所示:
override func viewDidLoad() {
super.viewDidLoad()
setupUI()
// Do any additional setup after loading the view.
}
func setupUI() {
let searchTextFieldView = SearchTextFieldView()
self.view.addSubview(searchTextFieldView) //adding view containing search box view at the top
**searchTextFieldView.searchText.text = "My Text"**
}
我在用故事板。另外,我可以看到带有占位符文本的文本字段。唯一的问题是我不能将文本设置为它。
有人能帮忙吗。我的密码有什么问题。
最佳答案
需要调用searchTextFieldView.setNeedsDisplay(),这将依次调用override func draw(_ rect: CGRect)
中的class SearchTextFieldView
。
在SearchTextFieldView中添加override func draw(_ rect: CGRect) {}
,并尝试在searchText.text = <someValue>
中设置draw()
。您可以使用String
中的SearchTextFieldView
属性从客户机(使用<someValue>
类的客户机)获取SearchTextFieldView
。
关于ios - 在另一个自定义ViewController中更改自定义UIView的变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53370102/