2017-03-07 41 views
2

我需要顯示在滾動視圖的一些信息,它應該是這樣的:斯威夫特:滾動型自動版式

enter image description here

首先視圖定義了高度,但第二個具有動態的高度。我知道如何讓它變成動態的,但我不知道如何在滾動視圖中進行設置。它試圖做到這一點,但它不起作用。任何想法如何在scrollview中製作這個場景?

沒有滾動視圖:

enter image description here

內。滾動視圖:

enter image description here

+0

關於帶動態約束的滾動視圖的好文章可以在這裏找到(http://www.technetexperts.com/mobile/setting-dynamic-constraints-on-scrollview-in-ios/) – Tech

+0

你需要顯示你嘗試過的東西。沒有人會在這裏做你的工作。 – bisma

+0

我提出這些意見,並內嵌它們在滾動視圖但是它不工作 – Phyber

回答

2

如果你的觀點僅垂直滾動,你應該使用一個UITableView而非UIScollView

每個表格中的截然不同的意見將是一個UITableViewCell。對於每個單元格設置內容的自動佈局約束,確保您的約束被附加到單元格內容視圖的頂部和底部。爲了更容易,請考慮在單元格內使用UIStackView

您的表視圖控制器

則...

tableView.rowHeight = UITableViewAutomaticDimension 
tableView.estimatedRowHeight = <estimate of height> 

...和你的細胞會調整自己。

有很多資源在那裏爲自動調整大小功能表視圖細胞...

+1

好的thx!我不確定UITableView是否是一個好主意。 – Phyber

+0

我認爲這是一個實現代碼如下是矯枉過正,因爲你是在處理一個有限的若干意見(只有3)。通過在UIScrollView中正確嵌入2個視圖和UILabel,你仍然可以實現你想要的。請參閱我的建議以及thewarri09的建議。 –

+0

如果它是固定數量的視圖,它是靜態單元格的主要候選者 - 對於tableview來說更好的情況! –

0

很難給出一個明確的答案沒有更多的細節......根據您給出的信息,我會給出以下通用解決方案:

假設你正在使用StroyBoard/XIB設計視圖 - 那麼你可以設置你的看法如下:

-View (root view) 

    -ScrollView 

     -UIStackView (vertical stackview) 

     -UIView (set static height and add all other components) 

     -UILabel (dynamic label ie with No. of lines set to 0) 

     -UIView (another view with static height set) 

後... - 使用autlayout設置上,前置,對UIScrollView的底部約束到根視圖... - 使用自動佈局將UIStackView的頂部,前導,尾部,底部約束設置爲滾動視圖的約束... - 使用自動佈局設置UIStackView的寬度 - 可以使其相等到根視圖,但你可以給它任何你想要的寬度 - 使用自動佈局或者將你的UIStackView放在Y軸上(垂直),或者將它的頂部約束設置爲根的UIView,因爲它需要知道它的Y位置...

有了這個,你應該有你的滾動視圖中當你的內容的大小變得比屏幕尺寸

較大踢如果這不是什麼你正在尋找,那麼你將不得不提供更多的信息或給予澄清。

0

該視圖中的第二個視圖或標籤不應具有Height約束。

對於那個標籤,set number of lines to '0'並沒有給它一個高度。但是,如果警告第二個視圖需要Height約束,那麼給它一個低優先級的Height約束。