mus*_*afa 54 ios autolayout swift
在我的storyboard应用程序中,我尝试添加额外UITextField的界面.但我得到标题所说的例外.我使用SwiftAutoLayout库.这是我的代码:
// MARK: - IBOutlets
@IBOutlet weak var passwordTextField: UITextField!
// MARK: - Properties
let userIdTextField = UITextField()
// MARK: - Lifecycle
override func viewDidLoad() {
super.viewDidLoad()
self.passwordTextField.keyboardType = .NumberPad
if getCurrentUserId() == nil {
self.view.addSubview(userIdTextField)
userIdTextField.setTranslatesAutoresizingMaskIntoConstraints(false)
self.view.addConstraints([userIdTextField.al_leading == passwordTextField.al_leading,
userIdTextField.al_trailing == passwordTextField.al_trailing,
userIdTextField.al_top == passwordTextField.al_bottom + 8])
userIdTextField.placeholder = "Enter User Id..."
}
}
Run Code Online (Sandbox Code Playgroud)
knu*_*uku 79
尝试passwordTextField在绑定任何约束之前添加 到其超级视图.
UPD(感谢@vmeyer和@MacMark):请注意,它的安全不加限制viewDidLoad或viewWillAppear/ viewDidAppear但 updateViewConstraints或viewWillLayoutSubviews因为视图层次结构可能是准备好执行这项操作.
vme*_*yer 11
我建议您不要在viewDidLoad中添加约束,因为视图层次结构已设置,但不是约束.您应该更喜欢updateViewConstraints或viewWillLayoutSubviews
在为超级视图中的视图添加约束之前,请先将视图添加到超级视图中。
superView?.addSubview(view)
superView?.addConstraints([topConstraint,leftConstraint,bottomConstraint,rightConstraint])
| 归档时间: |
|
| 查看次数: |
30916 次 |
| 最近记录: |