我正在使用Swift 2在XCode上开发一个应用程序,并且我的UI遇到了错误。我在感兴趣的视图控制器上放置了UILabel,UITextView和UITextField。
在输入UITextField之前,一切正常。我插入了文本字段并分配了适当的约束,在模拟应用程序时,单击文本字段将导致所有UI元素消失或者alpha瞬间变为零(我不确定这两个中的哪一个实际上是发生)。
我没有通过控制台收到任何反馈,应用程序本身也不会崩溃。
这是我的代码:
//Declare the following UI objects to be manipulated
@IBOutlet weak var labelOneTitle: UILabel!
@IBOutlet weak var textDescription: UITextView!
@IBOutlet weak var fieldInput: UITextField!
override func viewDidLayoutSubviews() {
//Set UI object alphas to zero prior to loading the view
labelOneTitle.alpha = 0
textDescription.alpha = 0
fieldInput.alpha = 0
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
override func viewDidAppear(animated: Bool) {
UIView.animateWithDuration(2) { () -> Void in
self.labelOneTitle.alpha = 1
}
UIView.animateWithDuration(3) { () -> Void in
self.textDescription.alpha = 1
}
UIView.animateWithDuration(3) { () -> Void in
self.fieldInput.alpha = 1
}
}
答案 0 :(得分:0)
可能是UIViewController。viewDidLayoutSubviews重新检查所有约束并根据类引用重新配置视图:
当视图控制器视图的边界发生变化时,视图会调整其子视图的位置,然后系统会调用此方法。但是,调用此方法并不表示已调整视图子视图的各个布局。每个子视图都负责调整自己的布局。
您的视图控制器可以覆盖此方法以进行更改 该视图列出了其子视图。这个的默认实现 方法什么都不做。
当您单击UITextField时,会出现键盘(可能),从而调用将所有UI元素的alpha设置为0的方法。
如果你将alpha的设置移动到viewDidLoad(),那么问题可能会消失。