2015-01-03 165 views
0

我花了最近2天試圖找出使用故事板的UIScrollview。每當我想到我得到它,一個新的問題出現,現在它縫合無法解決。 (這很簡單):使用Imageview和textview垂直滾動UIScrollview

我有一個Imageview 400x185採取scrollview(邊緣到邊緣)的整個寬度。這意味着scrollview具有imageview的寬度。 下面是一個textview,其中< = imageview的寬度。

我使用了很多在stackoverflow上描述的方法: - 在scrollview上使用一個視圖,並設置寬度與scrollview的父級相同。 - 僅使用沒有視圖的滾動視圖

所有這些都會在圖像的幀大小,scrollview的子視圖的大小,約束,textview不顯示或圖片太大時產生錯誤,即使我將約束設置爲邊緣。

有人可以使用上述UI製作示例項目嗎?知道如何處理它的人需要5分鐘的時間。

+0

UIViewController的UIView大小是多少?換句話說,'UIScrollView'擴展了整個屏幕嗎? – aytunch

+0

@aytunch UIView的大小是400x600。 UIScrollView放在UIView上,它需要整個尺寸 – n0ne

回答

0

我只是做了這個。我知道它的工作原理。以下是我建議:

  1. 確保您的400x600觀點被限制在寬度400和高度600

  2. 添加滾動視圖這一觀點。讓它佔據整個視圖,然後釘住頂部,底部,左側和右側。

  3. 將UIView添加到滾動視圖。讓它佔據整個視圖,然後釘住頂部,底部,左側和右側。這是您的內容視圖。我將文檔大綱中的我更名爲「ContentView」。此時,您將收到關於模糊內容大小的警告,因爲在添加更多約束之前,內容視圖可以增大到任意大小。

  4. 內容視圖的大小將由內容決定,因此它們需要完全受到限制。將imageView添加到內容視圖。將其寬度限制爲400,將其高度限制爲185.將其固定到contentView的左側,頂部和右側。在這一點上,contentView將知道它是400寬,但它仍然不知道它有多高。

  5. 將textView添加到contentView。將它與imageView固定一段距離。限制它在contentView中居中。將它與contentView的底部固定距離。將其寬度限制爲小於400,其高度爲600等。

  6. 此時,contentView的大小應該完全受到限制。它從寬度爲400的imageView寬度獲得寬度,並固定在contentView的兩側。它從imageView的常量距離中獲取其高度+ imageView的高度+ imageView和textView之間的恆定距離+ textView的高度+ textView到contentView底部的恆定距離。


如果你希望你的滾動視圖只垂直滾動,則限制了內容查看寬度與滾動視圖的寬度。這很容易在Document Outline視圖中完成,方法是從contentView拖動到scrollView,然後從彈出窗口中選擇等寬

+0

謝謝你的回答!唯一讓我困擾的是,當我將imageview的寬度固定爲400時,在iphone5模擬器上還有一個水平滾動條。我想要的內容縮放到iPhone屏幕的大小,所以只有垂直滾動條出現。我怎樣才能做到這一點? – n0ne

+0

將contentView的寬度限制爲viewController中頂級視圖的寬度,該寬度與手機的寬度匹配。最簡單的方法是使用文檔大綱視圖,控制從contentView拖動到頂部視圖,然後從彈出窗口中選擇「等寬」。確保你刪除了imageView約束,否則你最終會遇到衝突的約束。 – vacawama

+0

然後,您可能想要移除imageView的寬度和高度約束,將其頂部,左側和右側邊緣約束到containerView,然後使用AspectRatio約束將圖像寬度約束爲高度,以達到400:185的比例。 – vacawama