某些东西超越了我的约束
Something is overriding my constraints
我有一个从 nib 加载的视图,添加到超级视图,然后添加一些约束。然而边界结果是错误的,当我用 "Debug View Hierarchy" 查看视图时,它显示一些其他约束正在激活而不是我的。我不知道它们来自哪里以及为什么它们会覆盖我设置的那些。
Xcode 显示:
它们变灰的约束是我自己的,来自 nib 或在运行时添加。前四名是谜。
代码是用 C# 编写的,但非常简单:
var notificationView = UINib.FromName("NotificationView", null)
.Instantiate(null, null).OfType<NotificationView>().FirstOrDefault();
var constraints = new[]
{
notificationView.WidthAnchor.ConstraintEqualTo(window.WidthAnchor, 0.5f, 0),
notificationView.CenterXAnchor.ConstraintEqualTo(window.CenterXAnchor),
notificationView.HeightAnchor.ConstraintEqualTo(OverlayHeight),
notificationView.TopAnchor.ConstraintEqualTo(window.TopAnchor, -OverlayHeight),
};
window.AddSubview(notificationView);
NSLayoutConstraint.ActivateConstraints(constraints);
我将其添加到的视图是主要视图 window;我不知道这是否重要。
(我试图从负顶部开始,因为它应该从屏幕外动画,但由于这个问题它不起作用)
额外的约束从何而来,我该如何摆脱它们of/override?
手动向视图添加约束时,您通常希望删除由自动调整大小掩码创建的约束。
为此,只需添加:
notificationView.TranslatesAutoresizingMaskIntoConstraints = false;
之后
window.AddSubview(notificationView);
我有一个从 nib 加载的视图,添加到超级视图,然后添加一些约束。然而边界结果是错误的,当我用 "Debug View Hierarchy" 查看视图时,它显示一些其他约束正在激活而不是我的。我不知道它们来自哪里以及为什么它们会覆盖我设置的那些。
Xcode 显示:
它们变灰的约束是我自己的,来自 nib 或在运行时添加。前四名是谜。
代码是用 C# 编写的,但非常简单:
var notificationView = UINib.FromName("NotificationView", null)
.Instantiate(null, null).OfType<NotificationView>().FirstOrDefault();
var constraints = new[]
{
notificationView.WidthAnchor.ConstraintEqualTo(window.WidthAnchor, 0.5f, 0),
notificationView.CenterXAnchor.ConstraintEqualTo(window.CenterXAnchor),
notificationView.HeightAnchor.ConstraintEqualTo(OverlayHeight),
notificationView.TopAnchor.ConstraintEqualTo(window.TopAnchor, -OverlayHeight),
};
window.AddSubview(notificationView);
NSLayoutConstraint.ActivateConstraints(constraints);
我将其添加到的视图是主要视图 window;我不知道这是否重要。
(我试图从负顶部开始,因为它应该从屏幕外动画,但由于这个问题它不起作用)
额外的约束从何而来,我该如何摆脱它们of/override?
手动向视图添加约束时,您通常希望删除由自动调整大小掩码创建的约束。
为此,只需添加:
notificationView.TranslatesAutoresizingMaskIntoConstraints = false;
之后
window.AddSubview(notificationView);