2017-07-22 85 views
10

我正在嘗試創建一個UITableViewCell的自定義子類,它在圖像的右側顯示圖像和一些標籤。我有我的UIImageViewUILabels排列在堆棧視圖中,其最外面我固定到內容視圖的所有四邊。 Screenshot of storyboard Screenshot of constraints爲什麼Autolayout約束在運行時不會出現?

但是當我運行在模擬器應用程序,我沒有看到的圖像視圖。調試視圖層次結構時,我發現它們正在被裁剪。 Screenshot of view hierarchy

,並將注意力集中在最外面的堆棧視圖與「顯示約束」在一點點進一步深挖,我沒有看到我的自動佈局約束可言(而不是我得到一個模棱兩可的位置運行時警告爲每個最外面的堆棧視圖)。 Screenshot of view hierarchy focused on stack view

一個可擴展到右側設置了0線和表視圖獲取一個常estimatedRowHeight值及其rowHeight設置爲UITableViewAutomaticDimension的文本標籤,所以我想如果這些約束條件的工作,在表中的行將大小以適合內容。也許值得注意的是,當我調試視圖層次結構時,我添加的任何寬度或高度的自動佈局約束都會出現,所以我知道在運行時存在一些約束條件,但我不能爲了我的生活找出爲什麼相對於內容視圖的約束是不。

+0

這些約束是否引用了您的ContentView? – solenoid

+0

我相信他們都是 - 我確保按Ctrl +拖動到內容視圖時,我創建它們。 – John

+0

另外,我應該注意到它們都是「安裝」的,沒有一個是「佔位符」的限制。 – John

回答

3

經過長時間的摔跤並讓一位更有經驗的開發人員仔細查看我的項目,似乎沒有什麼錯誤的設置方式。使用完全相同的佈局和約束重新創建表格視圖單元格,並使用完全相同的代碼修復此問題。在這種情況發生之前,我已經對堆棧視圖和約束搞得一團糟,所以當你在模擬器中運行應用程序時,Xcode可能會進入一個無法正確設置約束的地方。

2

嘗試解決在運行應用程序和查看此屏幕時打印到控制檯日誌中的所有警告。因爲您始終無法忽略警告,所以您必須通過糾正或解決約束中的問題才能刪除許多警告。這是唯一可以幫助您解決大部分時間的解決方案。

相關問題