NSLayoutAttribute中的Top和TopMargin有什么区别?

What is the difference between Top and TopMargin in NSLayoutAttribute?

我正在尝试通过代码创建约束:

constraintImageCharacterTop = NSLayoutConstraint (item: image,
        attribute: NSLayoutAttribute.Top,
        relatedBy: NSLayoutRelation.Equal,
        toItem: self.view,
        attribute: NSLayoutAttribute.Top,
        multiplier: 1,
        constant: viewTop)
    self.view.addConstraint(constraintImageCharacterTop)

但是,我不确定哪个 NSLayoutAttribute 适合这个限制条件。 image 应该有一个顶部 space 到主 Superview self.view

我是这样认为的,但我不确定我是否正确:

我应该为图像 A 使用 NSLayoutAttribute.Top 还是 NSLayoutAttribute.TopMargin

我一般不对边距使用约束,这是个人喜好,要么约束到视图的边缘,要么约束到它的边距(8px)。假设您的图像 A 的顶部为 8px,您可以创建一个常数为 8 的顶部约束,或者一个常数为 0 的顶部边距约束,您将得到相同的结果。