发生LayoutConstraints错误时,如何获取约束对应的视图名称?
定位iOS布局约束冲突的实用技巧
当你在iOS开发中碰到布局约束冲突时,控制台会弹出这样的错误提示:
[LayoutConstraints] Unable to simultaneously satisfy constraints. Probably at least one of the constraints in the following list is one you don't want.
要快速定位到冲突的具体约束,一个常用方案是给约束设置identifier,同时给NSLayoutConstraint添加一个扩展,让日志里直接显示约束的ID和常量值,方便排查:
extension NSLayoutConstraint { override open var description: String { let id = identifier ?? "" return "id: \(id), constant: \(constant)" } }
不过这里有个明显的痛点——手动给每一条约束都设置identifier实在太繁琐了,尤其是在约束数量较多的项目里,这会消耗大量的重复劳动。
内容的提问来源于stack exchange,提问作者Sajjad Sarkoobi
相关产品推荐
相关产品推荐

