簡體   English   中英

不等式約束歧義

[英]Inequality Constraint Ambiguity

我在使用Autolayout和約束來調整UIView的大小時遇到​​了問題。 我想改變原點(小於或等於原始)和寬度(大於或等於原始)但我得到了這個:不等式約束歧義

你有解決這個問題的想法嗎?

謝謝

查看錯誤

約束錯誤

我嘗試為3.5英寸顯示器制作超過1個垂直間距約束收縮,因此我不得不在我希望在較小屏幕上收縮的組件之間制定2個約束。一個約束是不等式(大於或等於),其中我指定了所需的最小尺寸,具有1000優先級,其他約束是具有特定大小的等式約束,適用於4“屏幕,但具有較低優先級250。

這樣Xcode就會停止抱怨並在較小的屏幕上正確地重新定位布局。

在此輸入圖像描述

您的視圖水平模糊。 您沒有足夠的水平約束信息,系統只能為您的視圖層次結構提供一個解決方案。 在這種情況下,它無法基於當前約束信息確定視圖大小左邊距需要是什么。

您需要向視圖的寬度添加一個小於所需優先級(<1000)的約束為其定義寬度向左邊距約束添加相等約束。 通過使新約束成為<1000優先級,它將使新約束能夠與現有的不等式約束(這是必需的約束)正確混合。 這是與你的不平等有關的另一個問題

視圖的大小會有所不同,具體取決於您是將新約束添加到視圖的寬度還是視圖的左邊距。 這一切都取決於您希望布局在響應更改時的行為方式。

這對編譯器(邏輯上)沒有意義,因為無法知道程序是應該改變x還是寬度。 制作兩個靜態之一將解決您的問題。

首先,您必須知道要對約束做什么,請刪除大於等於約束的約束,該約束不會使場景具有小於等於約束。 buz視圖需要定義寬度約束。 要么優先考慮哪個約束扮演角色的優先級(大於等於約束或小於等於約束)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM