我试图通过视图约束循环。
我在view1中添加了:顶部、尾部、前导和高度约束。
顶部、尾部和前导是主ViewControllers视图。
如果循环查看view1的约束,则只会看到高度约束。
for constraint in view1.constraints {
print(constraint)
}
NSLayoutConstraint:0x618000968A0 UIView:0x7fae6b409dd0。高度==146(激活)
所以我循环了它的superviews约束(ViewControllers主视图),得到了很多约束,其中一些与view1相关。
for constraint in view1.superview?.constraints {
print(constraint)
}
NSLayoutConstraint: 0x618000096670H:|-(0)-[UIView: 0x7fae6b409dd0](活动,名称:'|': UIView: 0x7fae6b40a180)
NSLayoutConstraint:0x61800097400 H:[UIView:0x7FAE6B40DD0]-(0)-|(活动,名称:“|”):UIView:0x7fae6b40a180
NSLayoutConstraint:0x61800097520 V:|-(0)-[UIView:0x7FAE6B40DD0](活动,名称:“|':UIView:0x7fae6b40a180)
我得到了更多我不在乎的东西。
所以我的问题是,我想遍历view1的所有超视图约束,并且只获取与之关联的约束。
在此示例中,UIView:0x7fae6b409dd0是视图1。
但是我不知道如何得到那个财产。
谢谢
如果我打印出约束。firstAnchor我获得了更多信息,但仍然无法获得相关视图。
NSLayoutXAxisAnchor: 0x608000265480"UIView:0x7fae6b409dd0.leading"
NSLayoutXAxisAnchor:0x60800265480“UIView:0x7fae6b409dd0。尾部”
NSLayoutXAxisAnchor:0x60800265480“UIView:0x7fae6b409dd0.top”
一种简单的方法是比较约束对象中是否存在视图的哈希代码:
[[NSString stringWithFormat:@"%@", constraint] containsString:[NSString stringWithFormat:@"%x", view.hash]]
您可以使用NSLayoutConstraint
的firstItem
和ii dItem
属性来获取与约束相关的视图。请注意,ii dItem
是可选的,必须展开。
然后,您可以使用操作符比较它是否是相同的对象:
let constraints = view1.superview!.constraints
var count = 0
print("superview has \(constraints.count) constraints")
for constraint in constraints {
if constraint.firstItem === view1 {
count += 1
print(constraint)
} else if let secondItem = constraint.secondItem, secondItem === view1 {
count += 1
print(constraint)
}
}
print("\(count) of them relate to view1")
我正在为实体对象上的延迟加载集合执行此操作: 我想返回一个实体对象,其中加载了多个延迟加载的集合,我可以这样做吗(传入一个列表并为单个条件设置多个关联?):
问题内容: 以前,我将LegNo枚举定义为: 通过调用,我可以获得与每个枚举关联的值。 但是现在我决定让枚举是int -1而不是0,所以我决定使用私有构造函数进行初始化并设置其int值 现在唯一的事情就是因为我这样做,所以该方法不适用于枚举。我如何获得与int相关联的枚举?除了使用case switch语句或if-elseif-elseif之外,还有其他有效的方法吗? 我可以看到很多与从枚举获取i
问题内容: 我在Javascript中有一个关联数组: 我如何获得这本字典的钥匙?即我想要 七年后的编辑:为了使术语正确-在Javascript中没有“关联数组”之类的东西-从技术上讲,这只是一个并且是我们想要的对象键。 问题答案: 您可以使用: 例: 请参阅下面的参考以获取浏览器支持。Firefox4.20,Chrome5,IE9支持该功能。如果浏览器不支持,则下面的链接包含一个代码片段,您可以
根据这篇文章,我正在尝试反序列化与JooQ的一对多关联(没有代码生成)。 这是我的目标课程。 我的JooQ查询如下: 方法无法按预期工作。生成的SQL语句如下所示: 翻译后的postgres查询没有正确替换的key属性,这会导致SQL异常。 PS:我正在使用JooQ 3.14.0和postgres 11.5
以前,我将LegNo枚举简单定义为: 通过调用,我能够获得与每个枚举关联的值。 现在唯一的问题是,因为我是这样做的,方法将不能用于枚举。如何获得与int关联的枚举?除了使用case switch语句或if-elseif-elseif之外,是否还有其他有效的方法来完成此操作 我可以看到很多关于从枚举中获得int值的问题,但我想要的是相反的问题。
从《UML用户指南》第5章中,我发现了以下内容: 为了模拟结构关系, > 对于每对类,如果您需要从一个对象导航到另一个对象,请指定两者之间的关联。这是关联的数据驱动视图。 对于每对类,如果一个类的对象需要与另一个类的对象交互,而不是作为操作的参数,请指定两者之间的关联。这更像是一种由行为驱动的关联视图 这是我对第一类关联的理解,通过以下示例:一个类,User,具有三个属性,其中一个是另一个类,Ad