我有一個視圖,我從一個筆尖加載,添加到超級視圖,然後添加一些約束。然而,這個界限是錯誤的,當我用「Debug View Hierarchy」查看視圖時,它顯示了一些其他的約束,而不是我的。我無法弄清楚他們來自哪裏,爲什麼他們壓倒我設定的那些。東西是壓倒我的約束
Xcode中顯示了這個:
他們變灰的約束是我自己的,無論是從筆尖或在運行時添加。前四名是神祕的。
的代碼是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);
是我加入它是主窗口中的視圖。我不知道這件事是否重要。
(我想是因爲它應該從關屏動畫開始與負頂部,但由於這個問題是不工作)
哪裏有額外的限制來自何處,以及如何做我擺脫/重寫他們?
您可以啓用malloc的堆棧日誌記錄在您的方案選項(診斷選項卡)「所有的分配和自由史」。當你在視圖調試器(或任何其他元素)中選擇一個約束時,檢查員將向你顯示它的創建回溯。請記住將其關閉,因爲它可能會影響目標的性能。 – wolfrevo