[英]Converting a line of code to be compatible with storyboards in XCode 4.2
[英]Designing inside a scrollview in xcode 4.2 with storyboards
我有一個垂直滾動的uiscrollview-想象一下一個選項卡欄應用程序的“關於此應用程序”頁面,該頁面有些許變化,並且需要一個scrollview。 它僅包含一些圖像,一個視頻和一些文本(僅視頻已被編碼-其余已放置在GUI中)。 在情節提要(Interface Builder?)Xcode 4.2中,所有設置均已設置且可以正常運行,但是視圖僅與屏幕上顯示的一樣大,是否無法在情節提要中手動排列以下項目:最初不在屏幕上-您需要向上滾動嗎? 到目前為止,我發現的唯一方法是在可見視圖上設計它們,然后使用箭頭鍵向下導航。
在情節提要中選擇viewController,然后在“屬性”檢查器中將“大小”更改為“自由格式”。 然后將視圖/滾動視圖的“高度”更改為所需的大小。 應用程序運行時,支柱和彈簧的默認設置應注意正確調整視圖的大小,但您應仔細檢查。
我感到你很痛苦。 我發現的唯一方法是在大小檢查器中手動平移滾動視圖,以顯示您希望直觀編輯的視圖部分。
使用UIView包含元素,以便它們相對於此視圖定位。 將視圖作為子視圖添加到滾動視圖的0,0處。
確保滾動視圖框架矩形小於所包含的視圖。
新:2013年3月26日
我偶然發現我認為是直接在情節提要中處理UIScrollView的更簡單方法。
這是我所做的(重要的部分用**突出顯示):(請參閱代碼 )
請參見代碼。選擇視圖控制器並滾動視圖並檢查檢查器。
只需將視圖控制器的“模擬大小”更改為自由形式並設置一個比通常大小大的高度,您將能夠看到所有需要編輯的出口。
在iOS 6.0上,您可以將“容器視圖”拖動到“滾動視圖”中。 這將自動在當前場景之外為您的內容創建一個新視圖。 然后,您可以根據需要調整該視圖的大小以適合您的內容。
我相信您仍然必須在運行時設置ScrollView內容高度,但是至少您可以一次設計內容視圖,而不必在IB上上下滾動。
只需從要調整大小的任何視圖中取消選中“自動調整大小的子視圖”,它就可以防止所有對象隨其調整大小。
我已經為此苦苦掙扎了一段時間,而我嘗試過的每件事都失敗了。
具體來說,我想要實現的是一個具有可滾動視圖的自由格式的模式對話框,該對話框包含另一個視圖的容器。 我得到了很多不同的結果,包括偶爾使其正常工作。 大多數情況下,我看起來完全正確,但是沒有滾動。
在最后下載了Dickey Singh的代碼,該代碼雖然工作正常但沒有什么特別之處。 (優秀的清潔溶液順便說一句)。 因此,就像在代碼中一樣,我向其中添加了一個容器視圖,但是它壞了!
經過一些試驗,我弄清楚了發生了什么。 只是忍受我。
1)使用自動版式,滾動視圖的大小似乎決定了滾動范圍。 在“ USer Defined Runtime Attributes”中設置“ contentSize”似乎對此沒有影響,在“ viewWillDisplay”或“ viewDidLoad”中設置“ contentSize”或“ bounds”也不起作用。 因此,如果滾動視圖的初始大小為800x800,則將是所有可以顯示的空間。 因此,當我想要一個可滾動區域時,我先創建一個容器視圖,然后將滾動視圖放入內容中。
2)如果沒有自動版式,則可以通過在“ viewDidLoad”中以編程方式設置“用戶定義的運行時屬性”中的“ contentSize”來工作。 我更喜歡使用“用戶定義的運行時屬性”,因為它與布局保持一致。 該解決方案使您可以更加靈活地使用滾動視圖,因為在設計時可以是任意大小。
3)無論“自動布局”如何,如果滾動區域內的任何視圖與水平或垂直框架邊界完全匹配,則滾動視圖將不再充當滾動視圖。 這適用於我自己的代碼,以及我嘗試過的所有可能配置中的Dickey Singh的代碼。
我不知道是什么原因造成的(3),但這顯然是一個錯誤。
我希望這可以幫助正在使用滾動視圖的所有人。 我想有些人在使用它們時沒有任何問題,而有些人(如我)卻注意到但出現了問題。
這是我設計的ScrollView的內容完全大於Storyboard中屏幕內容的解決方案(好吧,除了一行代碼:-):
我目前正在開發適用於iOS 7的應用程序,其功能與@Dickey Singh的回答完全相同,但一開始並不起作用。 檢查情節提要后,我發現我們還需要為保存scrollView的視圖控制器添加自動布局約束。 這樣的自動布局約束似乎會在Xcode 5之前自動添加,但是現在我們需要自己做。 添加約束的方法:首先在情節提要中選擇視圖控制器; 在頂部菜單中輸入“編輯器”; 選擇“解決自動布局問題”; 選擇“在容器中添加缺少的約束”。 完成:-)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.