2013-12-15 59 views
1

有人可以引導我在正確的方向嗎?我不是要求別人爲我做,我只是尋求幫助。我對iOS開發相對較新。iOS 7 Autolayout

我的應用程序是一個通用的應用程序,它需要支持3.5" 屏幕,4" 畫面和iPad。下面的UI是爲4「屏幕設計的,但我需要根據屏幕大小調整UIButtons,UILabels和UITextFields的大小和重新排列。一切都嵌入在UIScrollView中。有人可以解釋我需要什麼樣的約束嗎?我已經提前嘗試了很多不同的東西,但我不能讓它正常工作。我已經嘗試使用彈簧和支柱,但我不能讓UITextFields與iPad上的一切對齊。

感謝。

Storyboard 4"

這是它應該如何與3.5" 屏幕顯示 Storyboard 3.5"

這是它顯示了在模擬器 Simulator 3.5"

+2

如果您需要在自動佈局的一般信息,你應該看的WWDC視頻/閱讀關於這個問題的文件。對於這個問題要簡潔地回答,需要更多細節;例如......「根據屏幕尺寸重新調整」,以何種方式?你試圖完成什麼行爲。 「無法正常工作」,這是怎麼回事?它在做什麼/沒有做到這一點不符合你的預期/期望?此外,即使有了這些信息,我們也需要看到適用於您發佈的視圖的具體限制條件。考慮發佈檢查器的圖像,顯​​示視圖/約束節點。 – NJones

+0

@NJones我已閱讀文檔,但我仍然無法理解。我應該可以觀看WWDC演示。我編輯了我的帖子,以顯示3.5英寸屏幕應該是什麼樣子。奇怪的是,如果我在故事板中使用3.5英寸視圖運行模擬器,它會顯示故事板中顯示的內容。如果我運行帶有4「視圖的模擬器,它會顯示錯誤,如截圖所示。我將用3.5英寸手機進行測試。 – Shan

+1

我認爲所有這些價格都是個別標籤。當然,更好,更具可擴展性的方法是將它們放置在具有靜態單元的UITableView中。 –

回答

3

我是一個有經驗的iOS和OSX開發者,我花了一段時間才能得到這種技術的工作。包括我在內的很多錯誤都是從一個大項目開始的。採取小步驟的嬰兒步驟並使用該技術通常更有成效。

閱讀然後重新讀取自動佈局指南。它擁有所有您需要的緊湊形式。我購買了Erica Sadun的自動版面書 - 你會發現它很有幫助(Matt Neuburgs ios7書也有很好的一章)。

因此,爲了您的燃眉之急。對於我個人最終發現的複雜視圖,使用代碼進行工作更容易。如果你已經使用了垂直距離約束,那麼你需要將每個引用作爲出口,或者你需要遍歷整個數組,並在viewDidLoad中找到它們。一旦你有他們,你可以改變他們的常數值來調整間距,以最好地適應當前的手機高度。

另一種方式來做到這一點與「間隔物」視圖(多個約束,從而在代碼更好)。在這種方法中,每個文本字段在它和下面的文本字段之間都有清晰的空白視圖。每個這些間隔符都會觸及兩個文本字段,而每個頂部的頂部都被限制爲與頂部高度相同的垂直高度。約束系統找到第一個的確切尺寸以使一切合適。

實際上,你可以做到這一點作爲一個混合解決方案 - 去除的垂直約束少數在你的故事板視圖,離開工作水平的,並且在代碼中添加缺少的垂直的。但首先嚐試一個簡單的dem項目。

+0

我一直在閱讀有關自動佈局遍佈互聯網。這是一個難以理解的概念,但我認爲應該從中學習。我想我應該嘗試儘可能多的不同的教程,我可以自己做。我做了一對夫婦,但這還不夠。謝謝。 – Shan

+0

我剛剛在我的公司內部使用了一個應用程序 - 它支持3.5和4「iPhone,包括橫向和縱向,所有都有約束條件,一旦獲得了流程並有一些工作視圖,就很容易爲後續的應用程序獲取它。沒有更多的setFrame頁面,setFrame,setFrame!Sadun建議開發你自己的一套圖書館,有很多好的提示 - 值得$ $ $恕我直言。 –

+0

我一定會檢查出來。從斯坦福大學的Coding Together課程開發iOS,但仍有很多需要學習的東西,我現在是一名全職計算機科學專業的學生,​​唯一阻礙我學習iOS開發的東西是時候了,每當我開始學習時, iOS的版本也隨之而來,特別是在iOS 7的情況下,很難支持較舊版本的iOS,而無需爲他們設計不同的設計。 – Shan