2014-03-26 74 views
0

我迫使的問題是: 我有1個大的scrollView,我必須添加5個子視圖編程 當我不知道子視圖會有什麼高度:(iOS爲具有動態高度的滾動視圖添加子視圖

有一些API這樣做呢? 或我必須手動算子視圖的高度,並與CGRectMake 通過計算尺寸來計算出添加它們?

+0

當你說你不知道子視圖是什麼高度時,你的意思是什麼? (內容是從網上獲取的,需要等待嗎?) 使用CGRectGetMaxY(rect)方法來查找最大點並設置下一個子視圖的框架原點。 – nsuinteger

+0

加上幾個'frame.size.height'的問題究竟是什麼?如果你需要一個API來做到這一點,你以後會遇到一些困難的時候 –

+0

我會去'CGRectMake'解決方案,但是我會繼承它以使所有這些都可以重用。另一個選擇是找到一些垂直線性佈局管理器實現,並使用它來計算佈局視圖的大小。然後你的視圖層次看起來像'UIScrollView - > LayoutManager - >所有其他視圖' – demosten

回答

1

我會做的是使用自動佈局。如果你使用內部約束將您的子視圖添加到滾動視圖,然後這些約束不僅可以確定子視圖的距離相互之間相互矛盾,而且還與圍繞它們的想象內容視圖的距離有關。滾動視圖然後使用內容視圖的大小作爲它的contentSize,整個事情變得可滾動。儘管事實上你不知道任何觀點的高度,但這仍然有效,這正是你所追求的。

+0

例如,看下面的代碼:https ://github.com/mattneub/Programming-iOS-Book-Examples/blob/master/bk2ch07p362scrollViewInCode2/ch20p670scrollViewInCode2/ViewController.m你會注意到我在滾動視圖中添加了一大堆UILabel對象。但是,我從來沒有問過任何這些UILabel物體的高度!但結果是,你可以滾動到任何一個。這是因爲'contentSize'是基於我添加標籤時添加的約束條件自動設置的。 – matt

+0

莽,你我的英雄!!!!老實說,我嘗試了蘋果的頁面教程同樣的方法,但也有一些爲什麼它不適合我,視圖搞砸了如此奇怪,並且你的鏈接將它清除爲重新煮沸的水!非常感謝,非常感謝! –

相關問題