我有多個橫向堆疊視圖的內部垂直堆疊視圖,我無法弄清楚如何為它們設定約束,因此它們的高度和寬度將是“動態的”(取決于水平堆疊計數)。
垂直堆疊應在所有設備上全屏顯示,因此其限制為 20:20:20:20 按鈕應為 1:1 縱橫比
即使我為垂直堆疊視圖設定了約束,它也會出于某種原因離開螢屏。

水平堆疊視圖:

垂直堆疊視圖:

uj5u.com熱心網友回復:
你的約束太強了。您是說垂直堆疊視圖的 4 條邊應該等于超級視圖的 4 條邊( 一些常量),并且不扭曲任何影像,并且所有影像必須具有相同的寬度,它們之間的間距為 10 . 那是不可能的。
您在這里看到的是布局系統試圖滿足垂直堆疊視圖的前緣和后緣應等于父視圖的前緣和后緣的約束。然而,這使得影像太大,這意味著總高度變得太大而無法適應螢屏,打破了頂部和底部邊緣的限制。如果我們試圖滿足頂部和底部邊緣約束,影像需要更小,我們最終會打破前緣和后緣約束。
你是說垂直stack view的4條邊不能超過superview的4條邊吧?這是“小于或等于”或“大于或等于”的關系,而不是“等于”。
你應該添加:
- 堆疊視圖前導≥超級視圖前導
- 堆疊視圖尾隨 ≤ 超級視圖尾隨
- 堆疊視圖頂部≥超級視圖頂部
- 堆疊視圖底部 ≤ 超級視圖底部
但是,僅這四個不足以確定垂直堆疊視圖的確切位置。您仍然需要一些等式約束。
由于您似乎希望它水平居中,您應該在堆疊視圖上添加一個 centerX 約束。影像可能并不總是足夠大來填充底部,因此使底部等式約束具有較低的優先級。您始終可以完全洗掉底部約束,但這會使影像無法擴展以填充底部空間,即使可以。似乎您希望影像始終從頂部開始,因此頂部約束可以保持不變。不再需要前導和尾隨約束,因為 centerX 約束已經確定了堆疊視圖的水平位置。

uj5u.com熱心網友回復:
試試這個:
將Vertical Stack View的分布更改為Fill Equally。
檢查這張圖片
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/396578.html
下一篇:如何通過導航控制器傳遞委托?
