SubView仅首次显示

时间:2017-03-16 12:33:01

标签: ios iphone swift

我正在使用Swift 3构建一个iOS应用程序,当我点击UITableView选择项目时,它会显示UITextField作为子视图。当我选择项目时,我在table​View(_: did​Select​Row​At:​)函数

中执行此代码
    self.view.viewWithTag(104)?.removeFromSuperview()

此后,当我再次点击UITextField时,子视图再次出现。

要显示子视图,我已在viewDidLoad()函数

中编写了此代码
self.textFieldGetCountry.addTarget(self, action: #selector(self.createActionSheet), for: UIControlEvents.editingDidBegin)

如何再次显示子视图?

3 个答案:

答案 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)

快乐编码。