我想在iOS 7應用程序上實現相當複雜的屏幕布局(我知道它只能在iPhone上運行)。如何表達複雜的iOS屏幕布局
屏幕布局在本質上是頗具動感,看起來像這樣:
+----------------------------+
| |
| hero image, 320px x 150 px |
| |
+----------------------------+
| full width button |
+----------------------------+
| timestamp (one line) |
| LARGE CAPTION (one line) |
| |
| Intro text +--------+
| that may take up |Image |
| a few lines, but |aligned |
| don't actually |to intro|
| know for sure how|text |
| many +--------+
+----------------------------+
| Some Data |
| In Tabular |
| Form Which may go over |
| more than one line|
+------------HR--------------+
| Long piece of text, |
| several paragraphs, |
| must scroll for as long |
| as needed. |
+----------------------------+
| Some footer text |
+----------------------------+
整個畫面一定會需要滾動。
我發現這個通常的方法是:
的UITableView
每個組件都是一個UITableView中的行 - 問題是,我們事先不知道每個的高度行,因此需要手動文本計算。
的UIScrollView /自動版式
沒用過這對任何巨大的影響,但我無法弄清楚如何創建使用Interface Builder組件的一長串 - 這一切佔用了超過一分屏UIScrollView。
大多數方法還需要編寫相當多的代碼才能計算高度,還需要指定小部件的字體,顏色和高度。
我已經知道用於表達所有這些組件之間高度,對齊和關係的通用語言:CSS。我會試圖將webview用於整個事情,但這不是項目其餘部分的風格,而且交互式組件(如按鈕)的行爲必須與本地行爲相同。
解決此問題的最佳方法是什麼?
如果你打算使用IB,這應該很簡單。你會想確定使用UIScrollView,但我不確定AutoLayout。正如你所描述的,UITableView不會讓你的屏幕看起來像。你在使用XCode/IB嗎? – CaptJak
是的。但是UIScrollView需要知道其中所有組件的x/y位置,不是嗎?這對於一個文本高度不知的文本下面的組件如何工作? – funkybro
嗨,我只是想跟進,看看下面的答案是否適合你 –