2017-01-23 82 views
1

我與TableViewController和定製TableViewCell實踐動態管理TableViewCell高度。我已經點擊顯示按鈕,就說明問題的選項,這樣做後一個問題列表&。通過單擊的UIButton

enter image description here

但在移除從上面圖片的問題列表視圖的間距我已經寫了這個代碼

-(void)viewWillAppear:(BOOL)animated{ 
    self.tableView.estimatedRowHeight = 40.0; 
    self.tableView.rowHeight = UITableViewAutomaticDimension;} 

和輸出就這樣產生了之前和之後點擊顯示按鈕。

enter image description here

但我試圖讓我的動態管理行高度輸出點擊顯示按鈕後。

約束:

enter image description here

注:我已經通過Using Auto Layout in UITableView for dynamic cell layouts & variable row heights

走了,但並沒有解決我的問題。

謝謝。

回答

2

你約束是不妥當的。而是採用rowHeight財產使用heightForRow方法,因爲這個屬性被調用一次,但這種方法被稱爲爲每個cell和。

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { 
return UITableViewAutomaticDimension; 
} 

對於約束您在單元中的每個組件都必須有頂部,底部和高度。對於組件的任何人,如果你錯過了這個約束的人則有缺陷在UI創建。

有關更多詳細信息,請發佈您的prototype-cell屏幕快照並顯示您給予他們的限制條件。

編輯

勾選上剪輯的StackView bounds屬性和其內部四個Button。

enter image description here

這樣做後我獲得以下的輸出:

enter image description here

原因:

StackView不讓內部內容是0

如果您還有疑問,我有演示,你可以把它從我的。

有這種類型的問題

  1. 創建兩個定製單元,一個問題和其他的選項多了一個途徑。
  2. 最初,稱重傳感器的問題。
  3. 如果用戶單擊show按鈕獲取按鈕的索引路徑並在該索引路徑後面加載選項單元格。
  4. 如果用戶單擊hide按鈕,則刪除該選項單元格。

注:

  1. 如果一個選擇單元能夠在一個的tableView時間是負載然後保持在一個變量中選擇選項的按鈕。
  2. 如果一次可以加載多個選項單元,則使用數組來維護它們。
+0

感謝您的回覆。我正在使用'xcode 7.0'和'iOS 9.0',並且找不到'heightForRow'屬性。如果你解釋我會很感激。 –

+0

確定發佈了您的用戶界面和約束的屏幕快照,如我在答案的最後幾行所述。 –

+0

'rowHeight'總是爲我工作,唯一的問題可以是約束。 –