簡體   English   中英

使用故事板在xcode 4.2中的scrollview中進行設計

[英]Designing inside a scrollview in xcode 4.2 with storyboards

我有一個垂直滾動的uiscrollview-想象一下一個選項卡欄應用程序的“關於此應用程序”頁面,該頁面有些許變化,並且需要一個scrollview。 它僅包含一些圖像,一個視頻和一些文本(僅視頻已被編碼-其余已放置在GUI中)。 在情節提要(Interface Builder?)Xcode 4.2中,所有設置均已設置且可以正常運行,但是視圖僅與屏幕上顯示的一樣大,是否無法在情節提要中手動排列以下項目:最初不在屏幕上-您需要向上滾動嗎? 到目前為止,我發現的唯一方法是在可見視圖上設計它們,然后使用箭頭鍵向下導航。

在情節提要中選擇viewController,然后在“屬性”檢查器中將“大小”更改為“自由格式”。 然后將視圖/滾動視圖的“高度”更改為所需的大小。 應用程序運行時,支柱和彈簧的默認設置應注意正確調整視圖的大小,但您應仔細檢查。

我感到你很痛苦。 我發現的唯一方法是在大小檢查器中手動平移滾動視圖,以顯示您希望直觀編輯的視圖部分。

使用UIView包含元素,以便它們相對於此視圖定位。 將視圖作為子視圖添加到滾動視圖的0,0處。

  1. 平移:使用Y坐標表示-200,然后編輯內容。
  2. 將更多內容放置在隱藏部分中,再次平移以顯示新的不動產
  3. 完成后,恢復ScrollView的高度和X,Y位置的值。

確保滾動視圖框架矩形小於所包含的視圖。

新:2013年3月26日

我偶然發現我認為是直接在情節提要中處理UIScrollView的更簡單方法。

  1. 無需代碼,只需情節提要設置即可。 這可能是iOS6.1 / Xcode 4.6中的新功能
  2. 無需禁用約束(即,在故事板文件的文件檢查器中取消選中“使用自動布局”)
  3. 無需添加UIScrollView * scrollView; 在.h中
  4. 無需在viewWillAppear或viewDidLoad的替代中添加self.scrollView.contentSize = ...

這是我所做的(重要的部分用**突出顯示):(請參閱代碼

  1. 創建一個啟用了情節提要的新項目
  2. 放入UIScrollView,在身份檢查器中為視圖控制器設置類
  3. 在屬性檢查器中,將“模擬指標”下的“大小”更改為“自由格式” **
  4. 選擇滾動查看; 在屬性檢查器中,將“滾動啟用”和“背景”設置為“白色”(您會找出原因-如果不這樣做)
  5. 在尺寸檢查器(選擇了滾動視圖)下,將高度更改為900,例如**
  6. 添加按鈕,一個在頂部,一個在底部
  7. 為兩個按鈕的buttonTouchUpInside添加一個默認處理程序,只需添加Log sender。

請參見代碼。選擇視圖控制器並滾動視圖並檢查檢查器。

只需將視圖控制器的“模擬大小”更改為自由形式並設置一個比通常大小大的高度,您將能夠看到所有需要編輯的出口。

在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中屏幕內容的解決方案(好吧,除了一行代碼:-):

https://stackoverflow.com/a/19476991/1869369

我目前正在開發適用於iOS 7的應用程序,其功能與@Dickey Singh的回答完全相同,但一開始並不起作用。 檢查情節提要后,我發現我們還需要為保存scrollView的視圖控制器添加自動布局約束。 這樣的自動布局約束似乎會在Xcode 5之前自動添加,但是現在我們需要自己做。 添加約束的方法:首先在情節提要中選擇視圖控制器; 在頂部菜單中輸入“編輯器”; 選擇“解決自動布局問題”; 選擇“在容器中添加缺少的約束”。 完成:-)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM