gpt4 book ai didi

c# - 某些东西超越了我的约束

转载 作者:行者123 更新时间:2023-11-29 11:41:36 25 4
gpt4 key购买 nike

我有一个从 nib 加载的 View ,添加到 super View ,然后添加一些约束。然而边界结果是错误的,当我用“Debug View Hierarchy”查看 View 时,它显示一些其他约束正在激活而不是我的。我无法弄清楚它们来自哪里以及为什么它们会覆盖我设置的那些。

Xcode 显示了这个:

enter image description here

它们变灰的约束是我自己的,来自 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);

我将其添加到的 View 是主窗口;我不知道这是否重要。

(我试图从负顶部开始,因为它应该从屏幕外动画,但由于这个问题而不起作用)

额外的约束从何而来,我该如何摆脱/覆盖它们?

最佳答案

手动向 View 添加约束时,您通常希望删除由自动调整掩码创建的约束。

为此,只需添加:

notificationView.TranslatesAutoresizingMaskIntoConstraints = false;

之后

window.AddSubview(notificationView);

关于c# - 某些东西超越了我的约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46207812/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com