我正在使用Swift 3构建一个iOS应用程序,当我点击UITableView
选择项目时,它会显示UITextField
作为子视图。当我选择项目时,我在tableView(_: didSelectRowAt:)
函数
self.view.viewWithTag(104)?.removeFromSuperview()
此后,当我再次点击UITextField
时,子视图再次出现。
要显示子视图,我已在viewDidLoad()
函数
self.textFieldGetCountry.addTarget(self, action: #selector(self.createActionSheet), for: UIControlEvents.editingDidBegin)
如何再次显示子视图?
答案 0 :(得分:1)
只需hide/show
tableView
因为如果您从超级视图中删除它,那么当textField
成为第一个响应者时,您还需要添加它。
//Show the tableView in createActionSheet
func createActionSheet() {
self.view.viewWithTag(104)?.isHidden = false
}
//Hide the tableView didSelectRow
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
tableView.isHidden = true
}
如果您创建IBOutlet
的{{1}},那么它很容易访问它。
答案 1 :(得分:1)
尝试这种方法:
/* Create a lazy property */
lazy var customView: UIView = {
let view = // init your view
/* configuration (frame, color etc.)... */
return view
}()
override func viewDidLoad() {
super.viewDidLoad()
/* Add your subview to viewControllers view */
self.view.addSubview(customView)
}
/* Make a function that regulates your view's hide/unhide propery or alpha */
func showCustomView(show: Bool) {
customView.alpha = show ? 1.0 : 0.0
/* alternative */
// customView.isHidden = !show
}
答案 2 :(得分:0)
您可以使用createActionSheet()
函数
self.view.addSubview(UIView)
快乐编码。