【发布时间】:2015-07-10 05:03:31
【问题描述】:
为这个可怕的标题道歉,但我真的想不出更好的方式来表达它。我的代码如下:
@IBAction func btnSaveTapped(sender: UIButton) {
println("Save Button Pressed")
self.StartAI()
self.btnSave.enabled = false
self.AnimateButton(sender)
var booContinueWithSend:Bool = true
(Continues)
当我运行上面的代码时,屏幕上的控件没有变化。我已经逐步完成了代码和每一行,没有任何变化。即使是btnSave.enabled,也没有变化。我已通过poing 控制台调试器确认该按钮未启用,但它仍显示为已启用。是的,我已将其设置为根据状态明显改变(下面的代码):
self.btnSave.setTitleColor(conButtonTextColour, forState: UIControlState.Normal)
self.btnSave.setTitleColor(conButtonTextColourDisabled, forState: UIControlState.Disabled)
其中conButtonTextColour 是UIColor.blackColor 而conButtonTextColourDisabled 是灰色的。
我的活动指示器也会发生这种情况,我已成功手动测试。当我运行上面的代码 (btnSaveTapped) 时,什么也没有发生(它不会像它应该显示的那样显示)。我在这里以编程方式创建 AI:
func CreateAI() {
let conAIViewHeightWidth:CGFloat = 100
let conHeightWidth:CGFloat = 50
self.aiView.setTranslatesAutoresizingMaskIntoConstraints(false)
self.view.addSubview(self.aiView)
self.aiView.backgroundColor = UIColor(red: 0, green: 0, blue: 0, alpha: 0.3)
self.aiView.layer.cornerRadius = 10
var constraintViewHeight:NSLayoutConstraint = NSLayoutConstraint(item: self.aiView, attribute: NSLayoutAttribute.Height, relatedBy: NSLayoutRelation.Equal, toItem: nil, attribute: NSLayoutAttribute.NotAnAttribute, multiplier: 1, constant: conAIViewHeightWidth)
var constraintViewWidth:NSLayoutConstraint = NSLayoutConstraint(item: self.aiView, attribute: NSLayoutAttribute.Width, relatedBy: NSLayoutRelation.Equal, toItem: nil, attribute: NSLayoutAttribute.NotAnAttribute, multiplier: 1, constant: conAIViewHeightWidth)
self.aiView.addConstraints([constraintViewHeight, constraintViewWidth])
var constraintViewX:NSLayoutConstraint = NSLayoutConstraint(item: self.aiView, attribute: NSLayoutAttribute.CenterX, relatedBy: NSLayoutRelation.Equal, toItem: self.view, attribute: NSLayoutAttribute.CenterX, multiplier: 1, constant: 0)
var constraintViewY:NSLayoutConstraint = NSLayoutConstraint(item: self.aiView, attribute: NSLayoutAttribute.CenterY, relatedBy: NSLayoutRelation.Equal, toItem: self.view, attribute: NSLayoutAttribute.CenterY, multiplier: 1, constant: 0)
self.view.addConstraints([constraintViewX, constraintViewY])
self.aiActivityIndicator.setTranslatesAutoresizingMaskIntoConstraints(false)
self.aiView.addSubview(self.aiActivityIndicator)
self.aiActivityIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.WhiteLarge
var constraintX:NSLayoutConstraint = NSLayoutConstraint(item: self.aiActivityIndicator, attribute: NSLayoutAttribute.CenterX, relatedBy: NSLayoutRelation.Equal, toItem: self.aiView, attribute: NSLayoutAttribute.CenterX, multiplier: 1, constant: 0)
var constraintY:NSLayoutConstraint = NSLayoutConstraint(item: self.aiActivityIndicator, attribute: NSLayoutAttribute.CenterY, relatedBy: NSLayoutRelation.Equal, toItem: self.aiView, attribute: NSLayoutAttribute.CenterY, multiplier: 1, constant: 0)
self.view.addConstraints([constraintX, constraintY])
self.aiActivityIndicator.hidesWhenStopped = true
self.aiActivityIndicator.startAnimating()
StopAI()
}
这是我分别启动和停止 AI 的两个例程。因为 AI 是 aiView 的子视图,所以我只是隐藏或取消隐藏它。然而,面对这些问题,我决定变得超级安全,并确保我没有隐藏并启用 AI。
func StartAI() {
self.aiView.hidden = false
self.aiActivityIndicator.hidden = false
self.aiActivityIndicator.startAnimating()
println("Started AI")
}
func StopAI() {
self.aiView.hidden = true
println("Stopped AI")
}
我做错了什么? 提前致谢。
【问题讨论】:
-
这可能是因为限制。有可能您对某些元素添加了约束,而有些元素没有约束,这使得视图非交互
标签: ios swift uibutton uiactivityindicatorview