簡體   English   中英

避免由於單元格中其他按鈕的高度擴展而導致按鈕高度擴展

[英]Avoid button height expanding due to other button's height expansion in cell

我有一個自定義 XIB,其中我有兩個按鈕,我固定在左右邊緣,並為 leftButton(命名為第一個按鈕)添加了對頂部、左側和底部的約束,以及為 rightButton(命名為第二個按鈕)添加了頂部、右側和底部的約束)

在此處輸入圖像描述

現在,當我只在右側按鈕(第二個按鈕)上添加填充時,我的問題就出現了

由於左側具有頂部和底部約束,並且在右側添加填充會增加視圖的 contentSize,因此 leftButton 的大小也會增加

在此處輸入圖像描述

我檢查了“調試視圖層次結構”中兩個按鈕的高度,兩者都不同(左邊一個較小,右邊一個較大)

在此處輸入圖像描述

我想要實現的目標:增加 rightButton(Second Button) 的高度,但保持 leftButton(First Button) 的高度不變

到目前為止我已經嘗試過:

對於leftButton(第一個按鈕)

  • 我嘗試更改“內容擁抱垂直”優先級,但沒有任何區別

  • 將頂部和底部約束的優先級從 1000 降低到 999,以便可能優先考慮高度(在調試視圖層次結構中顯示的更小)

編輯

領先余量>=10失敗

在此處輸入圖像描述

嘗試這個:

  • 左鍵

    • 約束導致superview
    • 將 CenterY 約束到 superview
    • 將頂部和底部約束為>=所需值
  • 右鍵

    • 將尾隨約束到超級視圖
    • 將 CenterY 約束到 superview
    • 將頂部和底部約束為>=所需值

編輯

為了解釋你的后續問題......

將 leftButton 從= 10更改為>= 10不滿足自動布局:

在此處輸入圖像描述

你希望它是 10 嗎? 11? 20? 自動布局只看到你想要它>= 10

如果在按鈕之間添加約束:

在此處輸入圖像描述

現在我們要告訴自動布局:按鈕之間保持 60 分,左按鈕至少有 10 分領先。

當右側按鈕標題變長一點時:

在此處輸入圖像描述

自動布局將左側按鈕“推”到左側,在它們之間保持 60 分。

如果我們用完了房間:

在此處輸入圖像描述

自動布局仍然在按鈕之間保持 60 分 - 通過將左按鈕向左移動 - 但至少保持 ( >= ) 10 分領先。

但是,正如您所看到的,這將需要其中一個按鈕進行壓縮……因此您需要為一個按鈕提供比另一個按鈕更高的Content Compression Resistance Priority ,以便自動布局知道您要壓縮哪個按鈕。

暫無
暫無

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

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