簡體   English   中英

在自動布局約束中設置的值與子視圖上元素的位置不匹配

[英]Values,set in auto-layout constraints doesn't match element's position on subview

有一個帶有xib的自定義UITableViewCell子類。 所有元素的約束都在IB中設置 在此處輸入圖片說明

讓我們看一下Test標簽(UILabel元素)。 它具有3個約束: 在此處輸入圖片說明

超級視圖(單元格的內容視圖)的尾隨空間設置為12

超級觀看的領先空間設置為12

要查看的頂部空間設置為5

但是當我構建並運行時,左側模擬器的邊距與標簽的前端之間的實際距離為20 頂部空間也是如此-預期為5px

在此處輸入圖片說明

如果我給標簽加長名-它會調整大小,並且尾隨空間正確放置-精確到12px,正如預期的那樣。

同樣的情況是測試標簽下方有2張圖像。 雖然它們的前導空格設置為12,但實際上它們與內容視圖的左邊界相距20 px。

問題可能是什么原因?

默認情況下,iOS 8中的邊距填充為8px(視圖的margin屬性為UIEdgeInset,所有四個側面的填充均為8px)。 當您為領先約束設置12px時,邊距的8px填充也將添加到約束中,這就是為什么領先約束為20px的原因。

取消選中“ 相對於保證金 ”選項,以解決該問題。

在此處輸入圖片說明

暫無
暫無

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

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