我有一個垂直滾動的uiscrollview - 想象一個標籤欄應用程序的「關於此應用程序」頁面,它需要一個滾動視圖。它只包含幾張圖片,一段視頻和一些文本(只有視頻已經被編碼 - 其餘的已經被放置在GUI中)。在故事板(界面生成器?)Xcode 4.2中,所有東西都應該設置好,並且工作正常,但視圖只與屏幕上顯示的大小相同,是不是可以在故事板中手動安排項目最初在屏幕外 - 你需要向上滾動?到目前爲止,我發現的唯一方法是在可見視圖上設計它們,然後使用箭頭鍵導航它們。在xcode 4.2中的scrollview中設計與故事板
回答
我感到你的痛苦。我發現的唯一方法是手動平移尺寸檢查器中的滾動視圖,以顯示您希望直觀編輯的視圖部分。
使用UIView來包含元素,以便它們相對於此視圖進行定位。將視圖作爲子視圖添加到0,0的滾動視圖中。
- pan:使用Y座標說-200,然後編輯內容。
- 在隱藏部分放置更多內容,再次平移以揭示新的房地產
- 完成後,恢復ScrollView的高度和X,Y位置的值。
確保滾動視圖框架矩形小於包含的視圖。
在故事板中選擇viewController,然後在屬性檢查器中將'size'更改爲'freeform' 。然後將視圖/滾動視圖的「高度」更改爲您所需的大小。在運行應用程序時,struts和彈簧的默認設置應該正確地重新調整視圖的大小,但應該仔細檢查。
這似乎工作正常,直到我試圖調整視圖或滾動視圖的故事板,在這一點上的內容都翹曲相對於視圖大小的變化...... – John 2012-01-11 13:26:59
約翰,其實這不是問題。如果您轉到該「滾動視圖」的「大小檢查器」並修改「自動調整大小」。清除矩形內的水平和垂直箭頭。 (我也清除了「右」和「底」箭頭,以便我的滾動視圖可以綁定到左上角)。然後,滾動視圖的大小不應受父視圖大小的影響。 – 2012-07-12 09:20:25
有沒有像尺寸或自由形式。 – 2012-10-14 06:07:55
只需在任何您想要調整大小的視圖中取消選中「Autoresize子視圖」,它應該保留所有對象的大小。
在iOS 6.0上,您可以在滾動視圖中拖動容器視圖。這會在當前場景之外自動爲您的內容創建一個新的視圖。然後,您可以根據需要調整此視圖的大小以適應您的內容。
我相信你仍然需要在運行時設置ScrollView的內容高度,但至少你可以設計你的內容視圖,而不必在IB上滾動。
我認爲你應該設置容器視圖的高度,而不是ScrollView的內容高度。我想知道的是如何使用佈局約束將Container Views高度設置爲嵌入視圖的高度。你有什麼想法嗎? – 2013-04-28 14:30:17
新:2013年3月26日
我偶然發現了什麼,我認爲是的UIScrollView直接在故事板處理的更簡單的方法。
- 無需代碼,只是故事板設置。這可能是iOS6.1/Xcode 4.6中的新功能
- 不需要禁用約束(即在文件檢查器中取消選中「使用自動佈局」作爲故事板文件)
- 無需添加UIScrollView * scrollView; in .h
- 不需要添加self.scrollView.contentSize = ...在viewWillAppear中或viewDidLoad中的覆蓋
這裏是我做的(重要的部分突出了**):(見code)
- 創建一個新的項目,分鏡啓用
- 下降一個UIScrollView ,在視圖控制器的身份檢查器中設置類
- 在屬性檢查器中,將模擬度量標準下的大小更改爲自由格式**
- 選擇滾動查看;在屬性檢查器中,打開「滾動啓用」和「背景」爲「白色」(你會發現爲什麼 - 如果你不知道)
- 在Size Inspector下(選擇滾動視圖),將高度更改爲900示例**
- 添加一個按鈕,一個在頂部,另一個在底部
- 爲按鈕和簡單的Log sender添加buttonTouchUpInside的默認處理程序。
請參閱Code選擇視圖控制器並滾動視圖並檢查檢查器。
關於這個問題有很多文獻,但你是我遇到的第一個實際上回答這個該死的問題的人。 FREEFORM修復了它。我花了很長時間試圖解決這個問題,謝謝分享! – 2013-04-03 05:15:27
視圖控制器的自由形式? – coolcool1994 2013-04-18 00:19:29
我一直在爲此苦苦掙扎了一段時間,而且我嘗試過的每件事都失敗了。
具體來說,我試圖實現的是一個自由大小的模式對話框,其中一個可滾動視圖包含另一個視圖的容器。我有很多不同的結果,包括偶爾使它正常工作。大多數情況下,我看起來完全正確,但沒有滾動。
終於下載了Dickey Singh的代碼,它工作完美,但沒有什麼特別之處。 (出色的清潔解決方案BTW)。所以,我添加了一個容器視圖,就像我在代碼中一樣,它打破了!
經過一番試驗後,我研究了發生了什麼。只是忍耐和我在一起。
1)使用自動佈局,滾動視圖的大小似乎決定了滾動邊界將是什麼。在「USer Defined Runtime Attributes」中設置「contentSize」似乎對此沒有影響,在「viewWillDisplay」或「viewDidLoad」中也沒有設置「contentSize」或「bounds」。因此,如果滾動視圖的初始大小爲800x800,那將是可以顯示的所有空間。出於這個原因,當我想要一個可滾動區域時,我創建一個容器視圖,然後將滾動視圖放入內容中。
2)如果沒有自動佈局,在「用戶定義的運行時屬性」中設置「contentSize」就像在「viewDidLoad」中以編程方式設置一樣。我更喜歡使用「用戶定義的運行時屬性」,因爲它與佈局保持一致。該解決方案使您可以更靈活地使用滾動視圖,因爲它在設計時可以是任意大小。 3)不管自動佈局如何,如果滾動區域內的任何視圖與水平或垂直框架邊界完全匹配,則滾動視圖停止作爲滾動視圖。這適用於我自己的代碼以及我試過的每種可能配置中的Dickey Singh代碼。
我不知道什麼是造成(3),但它顯然是一個錯誤。
我希望這可以幫助那些努力使用滾動視圖的人。我想有些人在沒有任何問題的情況下使用它們,有些人(比如我)已經注意到了他們的問題。
這裏是我的解決方案來設計一個滾動型比完全在故事板屏幕(以及較大的內容,除了代碼:-) 1個一行:
我目前正在開發一個iOS 7的應用程序,我完全按照@Dickey Singh的回答,但它在開始時並不起作用。 檢查故事板後,我發現我們還需要爲保存scrollView的視圖控制器添加自動佈局約束。 看來,這樣的自動佈局約束會在Xcode 5之前自動添加,但現在我們需要自己完成。 添加約束的方法:首先在故事板中選擇視圖控制器;在頂部菜單中輸入'編輯';選擇「解決自動佈局問題」;選擇'在容器中添加缺少約束'。完成:-)
只需將視圖控制器的「模擬大小」更改爲自由形式並設置比通常大小更大的高度,您將能夠看到需要編輯的所有插座。
你改變了我的生活,謝謝:D – 2014-11-27 19:49:02
這應該是被接受的答案..更優雅的解決方案 – Ciprian 2016-01-10 15:15:31
- 1. Xcode 4.2中的故事板?
- 2. Xcode 4.2故事板問題
- 3. 通過的Xcode 4.2故事板
- 4. 使用故事板的ScrollView
- 5. xcode 4.2 iOS桌面使用故事板
- 6. xcode 4.2故事板標識符
- 7. xcode 4.2故事板,通過代碼segue
- 8. Xcode 4.2項目沒有故事板
- 9. 在兩個視圖之間傳遞值 - Xcode 4.2與故事板
- 10. 其故事板中的Xcode 4.2的錯誤
- 11. iOS 5中的主頁按鈕,xcode 4.2,故事板
- 12. Xcode 4.2與故事板 - 文本字段未分配
- 13. 如何設計故事板中的UIScrollView
- 14. Xcode故事板
- 15. 在Xcode 4.2的故事板中使用UISplitView中的多個細節視圖?
- 16. 在故事板和UISeachDisplayController中使用XCode 4.2中的動態定製UITableViewCell
- 17. 與AppDelegate.m Xcode 4問題添加視圖控制器 - Xcode 4.2故事板
- 18. Xcode iPad故事板
- 19. Xcode 6:故事板
- 20. Xcode在故事板中隱藏項目
- 21. 在Xcode中有多個故事板
- 22. 在Xcode中缺少故事板
- 23. 在Xcode中使用多個故事板
- 24. xcode故事板在編譯中恢復
- 25. 使用Xcode 4.2中的故事板UIView中的靜態單元格
- 26. 故事板在Xcode 7
- 27. Xcode的故事板與@ 3倍
- 28. 的Xcode:與iPad模擬器故事板
- 29. Xcode的故事板與UITabViewController - 從按鈕
- 30. Scrollview分頁與圖像? xcode 4.2
很好的解決方案,不應該存在的問題! – 2012-11-09 16:31:30