2015-12-23 54 views
0

我正在設計一個應用程序,該應用程序具有滾動視圖並且在其上具有禁用滾動的表視圖的內容視圖。現在我希望表視圖會根據我的數組內容動態增加其大小。我已經做了一些編碼,我把我的約束屏幕截圖,從而使事情變得更加清晰 -UITableView通過滾動禁用動態增加高度?

我的約束列表 -

enter image description here

現在,這裏是我的代碼來填充表視圖&增加其大小與內容視圖 -

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell 
    { 
     let cell = tableview.dequeueReusableCellWithIdentifier("cellreuse", forIndexPath: indexPath) 
     cell.textLabel?.text = name[indexPath.row] 

     tableview.frame.size = tableview.contentSize 



     return cell 


    } 

這裏是我的主要故事板截圖 enter image description here

所以現在當我運行我的代碼時,內容大小不會隨着我的表視圖的大小而增加。因此,這裏是如何它看起來像一個4S -

enter image description here

因此,如何調整也是我的內容視圖按動態支持在IB奠定了所有的約束表視圖的增加的高度?

+1

不要設置contentView的框架來增加它的高度。爲height約束創建一個'IBOutlet',並根據您的表視圖應該顯示的記錄數來設置它的值。 – Gandalf

+1

爲什麼?你打算在滾動視圖中添加一些其他子視圖嗎? – Wain

+0

表視圖已從滾動視圖下降。嵌套它們聽起來非常危險。 – Desdenova

回答

1

請按照這些說明。
限制條件: -
MainView to ScrollView - leading = 0,trailing = 0,top = 0,bottom = 0;
滾動型到內容查看 - 領先= 0,尾隨= 0,頂部= 0,底部= 0,contentView.width = mainView.width,contentView.height = 「一些常數」
內容查看到的TableView - 領先= 8,尾隨= 8,頂部= 518(根據你的截圖),底部= 64;

現在您需要爲contentView的高度約束創建一個IBOutlet,我們之前給它一個隨機常量值;我們稱之爲contentViewHeightConstraint

現在,一旦您獲得陣列中的記錄,您需要撥打reloadData並根據表格中的記錄數增加contentView的高度。

contentViewHeightConstraint.constant = 518 + 44*(name.count) + 64;
同時刪除您在cellForRowAtIndexPath:中用於設置tableView大小的代碼。

+0

當我的單元格本質上是動態的時,正確計算tableView內容大小的最佳方法是什麼?由於tableView.contentSize給出了不同的結果。 –

0

如果arrayForOfferTable.count < = 6 {

  //offertableheight.constant = CGFloat(400) 

      offertableheight.constant = CGFloat(46*arrayForOfferTable.count + 40) 


     } 

使從故事板您的tableview高度約束出口和u可以動態改變表格視圖的高度,像我在這裏46是單元格高度和arrayForOfferTable.cont

+0

我已將表視圖高度限制設置爲大於等於。所以它改變了它的高度。內容視圖的高度不會改變多少呢?你可以看到屏幕截圖。 –

+0

我有你說的didi,但它只會導致我的約束大小的增加而不是內容視圖的大小。 –