2013-07-30 155 views
0

對於XCode和Interface Builder來說,這是一個相當新的東西,所以如果解決方案很明顯,請原諒我。縱向佈局不會橫向滾動

我在界面製作器(XCode 5)中設計了一個不錯的肖像IPhone視圖,並對每個元素(標籤,文本視圖,開關,按鈕等)設置了約束,以使它們在3.5或模擬器中4英寸的portait模式。但是,當我將模擬器旋轉到風景時,它會打破設計,使元素彼此重疊,其他元素消失(從視圖中裁剪) - 我期待這一點。

我的解決方案的想法是將所有UI元素放在UIScrollView中,並在滾動視圖上設置約束,以便在橫向模式的任一portait中填充屏幕。

完成此操作後,縱向視圖與模擬器中的一樣,但在橫向視圖中不滾動,並且我的UI元素都不遵守它們的約束(水平伸展等)。我仍然失去了UI的底部,我不能滾動到視圖。

我認爲把所有內容放入滾動視圖中只會「解決」這個問題,但滾動視圖似乎完全沒有任何作用。我在界面生成器中調整了各種設置,但是沒有任何修復。

似乎有成爲很多長篇大論解決方案,這類方案的基礎上的代碼,但肯定的東西這個簡單而常見的應該只是「工作」

我缺少什麼,或者我做了什麼錯,還是簡單的滾動真的必須廣泛編碼才能工作?

回答

0

將所有元素放在滾動視圖中並不能真正解決任何問題。這些元素仍然需要約束才能知道如何將自己置於滾動視圖中。你也需要小心,因爲這個解決方案聽起來像是違背了蘋果人機界面準則的東西。我建議不要忽視這些,因爲蘋果公司拒絕這樣做的應用程序。

我會說你的問題是你的約束,如果元素包含其他元素,並在旋轉時移動到錯誤的地方,就不能正確設置。令人煩惱的是,開發者網站的WWDC視頻部分仍然存在,但是當它恢復時,在Xcode 5中觀看一段自動佈局視頻,這將有助於解釋發生了什麼。

如果您希望元素在旋轉時完全改變位置,您可能需要的不僅僅是約束,還需要拋出一些代碼來處理縱向和橫向之間的轉換。所以它真的取決於當你旋轉設備時視圖應該做什麼

+0

是我的錯誤,即Im大小滾動視圖的大小的視口?我應該將scrollview的大小設置爲可容納縱向或橫向所有UI的較大尺寸? (我認爲滾動視圖必須調整到可用空間的大小,然後滾動它的內容 –

+0

不管滾動視圖應該滾動它的內容,只要它的內容比它大,滾動視圖應該是相同的寬度和高度作爲視圖本身,它的內容可以隨心所欲,只要你啓用了用戶交互 – PaReeOhNos

+0

這就是我認爲它應該工作的時候它會滾動。當我切換到橫向滾動的內容時查看器大於滾動視圖本身(scrollviewer是屏幕的大小,內容超出屏幕底部)。也許它是一個XCode 5錯誤,我試着在XCode 4中 –

0

好的,我找到了它。它IS在任一的XCode 5或IOS 7

我創建2層簡單iphone UI的界面生成器中的錯誤 - 一個在Xcode 4.6.3靶向IOS 6.1和其他XCode中5 Beta 4的靶向IOS 7測試4。

第一個應用程序完全按照我的設想運行,滾動視圖以橫向模式滾動。第二個應用程序在滾動視圖中根本沒有滾動 - 顯然是一個錯誤。

相關問題