编辑:我更新了问题,因此更清楚。
有没有办法检查约束并获得{1, 2, 3}
有冲突的约束?
我正在使用Autolayout helper课程,我想在出现冲突或错误时打印漂亮的日志。
默认情况下,当存在布局冲突时,您将获得一个显示冲突约束的日志,如下所示:
NSArray
我想让这些约束以更漂亮的方式显示它们(例如通过视图键)。关于如何做的任何想法?
谢谢!
答案 0 :(得分:1)
我的书提供了一些实用方法(在NSLayoutConstraint的类别中实现),我喜欢在调试或探索它时记录约束:
extension NSLayoutConstraint {
class func reportAmbiguity (var v:UIView?) {
if v == nil {
v = UIApplication.sharedApplication().keyWindow
}
for vv in v!.subviews as! [UIView] {
println("\(vv) \(vv.hasAmbiguousLayout())")
if vv.subviews.count > 0 {
self.reportAmbiguity(vv)
}
}
}
class func listConstraints (var v:UIView?) {
if v == nil {
v = UIApplication.sharedApplication().keyWindow
}
for vv in v!.subviews as! [UIView] {
let arr1 = vv.constraintsAffectingLayoutForAxis(.Horizontal)
let arr2 = vv.constraintsAffectingLayoutForAxis(.Vertical)
NSLog("\n\n%@\nH: %@\nV:%@", vv, arr1, arr2);
if vv.subviews.count > 0 {
self.listConstraints(vv)
}
}
}
}