UILabel显示在debugging视图层次结构中,但不在应用程序中

我有一个UIView,我通过Interface Builder添加到ViewController中。

在我的代码中,每次按下button时,都会在此UIView中创build一个标签:

func addToDisplay(stringToDisplay: String) { let label = UILabel(frame: CGRectMake(0, 0, 10, 10)) label.text = stringToDisplay label.textColor = UIColor.redColor() label.textAlignment = .Right label.sizeToFit() label.adjustsFontSizeToFitWidth = true label.minimumScaleFactor = 0.5 label.setTranslatesAutoresizingMaskIntoConstraints(false) var lastLabel: UILabel? if displayView.subviews.count > 0 { lastLabel = displayView.subviews[displayView.subviews.count - 1] as? UILabel } displayView.addSubview(label) var viewsDictionary = ["displayView": displayView, "label": label] // add constraints if let lastLabel = lastLabel { viewsDictionary["lastLabel"] = lastLabel displayView.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:[label(==20)]-0-[lastLabel]", options: nil, metrics: nil, views: viewsDictionary)) } else { displayView.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:[label(==20)]-0-|", options: nil, metrics: nil, views: viewsDictionary)) } displayView.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("V:|-0-[label]-0-|", options: nil, metrics: nil, views: viewsDictionary)) } 

当我按下button时,我的设备(在模拟器上)没有任何东西出现,但是当我检查视图debugging层次时,它就在那里。 我不明白为什么。 任何想法?

编辑:

这里有两个截图:

在这里输入图像说明

在这里输入图像说明

EDIT2:

通过改变α到不同于0的东西来解决…

那么我认为你需要告诉视图更新约束,编写这个检查:

 [displayView updateConstraintsIfNeeded]; 

还testing你的displayView被添加到self.view ! 你在使用导航栏吗? 如果是,那么是translucent ? 如果是,那么你的self.view可能是从(0,0)开始导航栏是它的顶部。 如果是这种情况,然后给一些X&Y ,说(100,100),并检查是否显示。

让我们知道这是否有帮助。