约束计数在AutoLayout中始终为零(0)-iOS [英] Constrains count is always getting zero ( 0 ) in AutoLayout - iOS
本文介绍了约束计数在AutoLayout中始终为零(0)-iOS的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我遇到一个奇怪的问题,我正在使用情节提要在视图上设置约束,如下所示:
I am getting one weird issue, I am setting constraints on the view using storyboard as below:
但是,如果我通过代码访问所有应用的约束,那么总会得到零(0).
But if I am accessing all applied constraint by code then always getting zero (0).
对于self.view,它返回约束,但对于黄色视图,它返回零.
for self.view it's returning the constraint but for yellow view getting zero.
推荐答案
使用此代码(Swift 4+和Xcode 9.4.1)
import UIKit
class ViewController: UIViewController {
@IBOutlet var subView: UIView!
override func viewDidLoad() {
super.viewDidLoad()
print(self.view.getAllConstraints().count)
print(self.subView.getAllConstraints().count)
}
}
extension UIView {
func getAllConstraints() -> [NSLayoutConstraint] {
var views = [self]
var view = self
while let superview = view.superview {
views.append(superview)
view = superview
}
return views.flatMap({ $0.constraints }).filter { constraint in
return constraint.firstItem as? UIView == self ||
constraint.secondItem as? UIView == self
}
}
}
这篇关于约束计数在AutoLayout中始终为零(0)-iOS的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文