我知道这可能是个基本问题,但我是 Swift 的新手。 另外,我在 SO 上尝试了各种解决方案,但无法解决问题。 所以如果有人能帮我解决我的问题。
我有一个自定义的 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)
}
}
现在我想将文本设置为来自另一个类的 SearchText 文本字段,如下所示:
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"**
}
我正在使用 Storyboard。另外,我可以看到带有占位符文本的文本字段。唯一的问题是我无法为其设置文本。 任何人都可以帮忙。我的代码有什么问题。
最佳答案
需要调用searchTextFieldView.setNeedsDisplay(),这会依次调用override func draw(_ rect: CGRect)
在 class SearchTextFieldView
.
添加override func draw(_ rect: CGRect) {}
在 SearchTextFieldView 中,尝试设置 searchText.text = <someValue>
在 draw()
.您可以使用 String
属性(property) SearchTextFieldView
, 得到 <someValue>
来自客户端(使用 SearchTextFieldView
的客户端)类。
关于ios - 在另一个自定义 ViewController 中更改自定义 UIView 的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53370102/