viewWillAppear方法不起作用

时间:2016-01-13 12:35:49

标签: swift

enter image description here

import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var family_name: UITextField!
    @IBOutlet weak var given_name: UITextField!
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }
    override func viewWillAppear(animated: Bool) {
        family_name.center.x -= view.bounds.width
        given_name.center.x  -= view.bounds.width
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
}

viewWillAppear无效。当我运行我的应用程序时,两个文本字段都不应该是可见的,但它们是。我附上了一张有限制的照片;我认为这可能是问题!

1 个答案:

答案 0 :(得分:0)

您正在使用/MassageTherapy/DeepTissueMassage?cpc=dtm,因此不会应用相框更改。您的约束将在autolayout

之后覆盖帧值

为textFields的右边约束或宽度约束创建viewWillAppear:

检查下面的示例图像以创建约束的IBOutlet。 enter image description here

在上图中,我创建了高度限制的出口。

要在视图外发送textField,假设您已创建了正确的约束。

IBOutlet

此后,在按钮单击或其他情况下或在延迟一段时间后,您可以将constraintTextView1Right的值更改为20,

//suppose initial value of right constraint is 20
constraintTextView1Right.constant = 20 + self.view.bounds.width;
self.view.layoutIfNeeded();//forcefully apply constraint with new values

你的textFiled会出现在屏幕上。

要设置相同的动画,您可以在下面编写代码。

constraintTextView1Right.constant = 20
self.view.layoutIfNeeded();//forcefully apply constraint with new values