2017-05-26 268 views
1

我一直試圖達到這樣的設計3天,但我試過的一切都失敗了。 enter image description hereUIScrollView裏面的動態高度UILabel

這是我的佈局是如何。

  • 藍色部分是一個UIScrollView,對主要 視圖有0 0 0 0約束。
  • 在UIScrollView內部嵌套的是一個UIView,其中包含我所有的 內容,同時還具有對UIScrollView的0 0 0 0約束。我也 使UIView的寬度等於UIScrollView的寬度。
  • 然後我添加了從上到下的元素。圖像很簡單,10爲內容視圖的頂部邊界,固定寬度和高度,並在容器中水平居中。
  • 配置文件名稱標籤與圖像相同,但只有固定的高度。
  • 包含3個標籤和2個動態高度標籤的UIView。我給了UIView頂部,左側和右側的約束,並留下底部,以便動態高度標籤能夠在需要時推動視圖的高度。 UILabels有0行設置。
  • 第二個UIView,0 0 0 0和5 5 5 5內部每個標籤的約束條件
  • UITableView裏面的UIView,視圖有一個固定的高度,表也是0 0 0。
  • 按鈕5頂部,左5,右5。然後,我將容器UIView(包含所有這些項目)與按鈕的底部邊緣對齊,如本文最常見的答案:UIView with dynamic height multiple UILabel

我還用這段視頻作爲參考,介紹如何實現UIScrollView,因爲這是我第一次。 https://www.youtube.com/watch?v=VE6DQGy4iS8

我不允許使用UIStackView BEC我們針對iOS的8

的2個顯而易見的問題,我現在所擁有的是:

  1. 當我運行應用程序,滾動什麼也不做。
  2. 唯一的警告我在故事板得到是這樣的: enter image description here
+0

我會確保您的所有用戶界面的頂部和底部的引腳或一個或另一個固定的高度適當約束。具體而言,您應該能夠將包含動態標籤的UIView的底部固定到下一個UIView的頂部,以在兩者之間具有固定間距,同時仍允許動態高度。 – zfetters

+0

我的意見是固定的,如你所說。什麼確定了滾動視圖的高度? – Tarek

+0

所以,你有你第一個UIView直接在你的滾動視圖下固定0,0,0,0。裏面是你的所有內容,所以一旦你添加了所有適當的約束,以確保一切都有它的寬度/高度佔你的家長UIView將實際上擴大的規模,如果它的內容增長(通過你的動態高度標籤),這反過來會增加你的UIScrollView的contentView大小。最重要的是你對內容的限制是正確的,你應該很樂意去。 – zfetters

回答

2

好吧,我設法在年底做。

我所做的就是將具有動態UILabels的UIView固定到頂部,左側和右側。 因爲它的高度,我控制它從它拖到它自己內部的最後一個項目,這是照片中的第二個動態高度UILabel。我控制拖動並設置UIView,並選擇具有動態高度的UILabel的「Bottom Spacing to Container」。這樣UILabel就可以控制UIScrollView需要的UIView最終高度來找出它自己的高度。

粗糙的每個UILabel元素被固定在右上角,只允許它們全部動態。

你對下面的UIViews(無論你想給他們一個靜態的高度還是動態的)做什麼是你的選擇。

至於底部的UIButton,我對它做了同樣的事情。我控制從包含UIView(這是嵌套在UIScrollView中,幷包含一切在這裏)拖到UIButton,我選擇了「底部間距到容器」,並將其設置爲5.這將允許包含視圖調整其高度取決於UIButton的位置取決於它在動態標籤推動其視圖高度時移動了多少距離,並反過來推動UIButton(如果有意義的話)。

總之,在典型的場景中,您通常會將視圖中的最後一個元素固定到包含視圖的左下角和右下角。但是,爲了允許動態更改,您可以反轉約束的2個項目。

我希望這是有用的。

相關問題