2015-03-30 42 views
0

我剛開始學習autolayout和swift。我正在嘗試使以下用戶界面工作。使用Autolayout製作簡單的用戶界面

enter image description here

然而,於iPhone 4s模擬器它看起來像這樣添加的約束(其在後面敘述)之後。我截取了整個模擬器的截圖。

enter image description here

上的其他設備,例如iPhone 6加,它看起來不同。我讀到你應該添加約束,你認爲這足以定義對象的位置。我添加這些約束:

約束的UIImageView

  1. 圖像被 「方面適合」。
  2. 寬度約束。
  3. 寬高比。
  4. 前導和頂部空間至上海華(I也試圖消除「龍頭空間」約束,而是加入「容器水平中心」約束)

我認爲上面的約束應足以來定義對象的大小和位置。

約束的UITextField

  1. 寬度約束。
  2. 寬高比。
  3. 領先的超級景觀空間。
  4. 垂直間距UIImageView

再次,應該足以定義文本字段的位置。看來XCode認爲不然。我如何使這個簡單的界面工作?我錯過了什麼?

編輯

讓XCode的推斷約束效果最好。我爲兩者設置了寬度和寬高比約束。其他約束是由XCode(圖像視圖的頂部空間,底部空間和圖像視圖的水平中心以及文本框的水平中心相對於圖像視圖)推斷的。

我的問題是,你在我的原始約束中看到錯誤嗎?如果我能理解,那麼我可以轉向複雜的接口。讓XCode推斷約束並不總是奏效。

回答

0

您可以嘗試刪除寬度約束。相反,將追尾邊緣添加到超級視圖。隨着長寬比,這應該適合圖像到屏幕上。

+0

因此,從'UIImageView'中,我刪除了寬度並將尾部邊緣添加到超級視圖。我保留了'UITextField'約束。它不起作用。你能告訴我爲什麼發生?我們的任何限制都應該足以定義尺寸和位置。 – 2015-03-30 19:16:35

+0

看我的編輯。在這個特定的接口中,讓XCode推斷約束的作用。但是對於一個稍微複雜的界面,它會失敗。有什麼建議麼。 – 2015-03-30 19:25:12

+0

對不起,我不明白這個問題。也許你最好再問一個問題? – emrys57 2015-03-30 20:14:28