2016-10-11 53 views
0

Current setup爲什麼我的約束設置對X/Height不滿意?

上面的ImageView具有以下限制:

  • 的值的SuperView X的20
  • 對準中心的100
  • 上邊距的高度0
  • (刪除在生成時,寬度爲160,我添加使它工作。我的整個問題是關於這個)

Xcode表示如果我不添加寬度約束,它缺少X或Width的約束。

我可以理解他爲什麼不能顯示正確的寬度,因此可能會將故事板中的圖像視圖寬度降低到0,就像它在您運行時填充的空標籤一樣。我期望黃色的警告說「寬度將是0,而不是160!」。

爲什麼XCode無法通過「Center using Superview X」找出X位置?我不明白缺少什麼信息可以讓他很好地顯示某些內容,而無需像我必須那樣添加自動銷燬的約束。

+2

我一直在想自己。我相信這是「它是如何工作的」之一。帶標籤的事情是,它們永遠不會是空的,即使是「」字符串是一個字符串,所以它「有」可以使用的東西。當圖像爲零時,UIImageView沒有任何內容。我非常確定,如果您將圖像放在0寬度的位置,一切都可以正常工作。 – IxPaka

回答

1

據我所知,沒有寬度,如果您只提供視圖的中心位置,Xcode將不知道將X放在哪裏。

例如,如果ImageView的寬度是W並且中心是100,那麼x座標將是100-W.如果沒有寬度,則無法計算x座標。

+0

圖像居中的視圖是我最上面的視圖,當然它知道它的寬度是多少,因此可以計算其中心 –

+0

是的,它可以找到沒有問題的中心,當我說「視圖」時,我的意思是ImageView –

+1

爲了澄清,Xcode抱怨無法在不知道其寬度的情況下計算圖像視圖的_frame_。這就是爲什麼設置假寬度限制來解決問題的原因。 – Costique