如果我有一个从self.view.constraints检索到的NSLayoutConstraint,是否有可能获得将约束应用于的对象? 编辑:要弄清我要做什么:将UILabel从屏幕外重新放置到屏幕上,然后更改该标签的内容
所以我有这个约束:
<NSLayoutConstraint:0x600000e337f0 'lblTeamFieldTop' V:[UILabel:0x7f9d5a826120' Add A Team']-(75)-[UILabel:0x7f9d5a8256f0'Team Name'] (active)>
我知道这是它应用于的标签:[UILabel:0x7f9d5a8256f0
有没有一种方法可以从约束中获取对该对象的引用?
对此进行更多扩展。以编程方式创建约束时,可以设置以下属性:
+ (instancetype)constraintWithItem:(id)view1
attribute:(NSLayoutAttribute)attr1
relatedBy:(NSLayoutRelation)relation
toItem:(id)view2
attribute:(NSLayoutAttribute)attr2
multiplier:(CGFloat)multiplier
constant:(CGFloat)c;
,但是WithItem和toItem似乎不是约束的可读属性。
我找到了,第一项目和第二项目。
编辑:以阐明我的解决方案。 fistitem和seconditem是NSLayoutConstraint的属性。例如,firstitem可能是Superview,而seconditem可能是您要与firstitem对齐的项目,例如UILabel。因此,在我的情况下,我正在寻找的UILabel是第二个项目(您可以在Storyboard中看到这些项目,只需单击NSLayoutConstraint并查看其信息面板)。我确实必须将其强制转换回UILabel,因为我认为NSLayoutConstraint将它们强制转换为Any。