我在一個單元格中具有不同內容(視圖,標籤,圖像視圖)的tableView單元格。但在某些細胞內容可能不完整。我如何使用調整大小的單元格而不刪除和添加總是約束?謝謝。如何在不刪除iOS中的約束條件下調整具有不同內容的tableView單元格
回答
一個針對此問題可能的解決方案:
- 爲隱藏狀態添加約束優先1000
- 添加調整大小狀態額外的限制低優先級(前750)
- 保存約束是僅用於隱藏狀態的到
IBOutlet
集合 - 將約束條件保存爲僅將用於調整大小的狀態到另一個
IBOutlet
收集
代碼:
@IBOutlet var hiddenConstraints: [NSLayoutConstraint] = []
@IBOutlet var visibleConstraints: [NSLayoutConstraint] = []
func hide(_ hide: Bool) {
for hiddenConstraint in self.hiddenConstraints {
hiddenConstraint.isActive = hide
}
for visibleConstraint in self.visibleConstraints {
visibleConstraint.isActive = !hide
}
self.layoutIfNeeded()
}
有更快的解決方案:
- 移動內容可以隱藏到容器視圖
- 設置高度約束的容器視圖
- 變化從代碼高度約束常量到0如果隱藏或適當的高度,如果可見
代碼:
@IBOutlet var heightConstraint: NSLayoutConstraint!
func hide(_ hide: Bool) {
self. heightConstraint.constant = hide ? 0 : 150 //Estimated height
self.layoutIfNeeded()
}
這不是一個好辦法,因爲它會導致崩潰的約束在運行時。所以我更喜歡用第一個。
此外,您還需要從表格中更新您的單元格以將其他單元格向上或向下移動。
謝謝,工作良好 –
雷Wenderlich對錶格單元格的動態調整大小一個夢幻般的教程,可以在這裏找到: https://www.raywenderlich.com/129059/self-sizing-table-view-cells
TL; DR你需要確保你的內容在所有四邊固定到單元格的內容視圖,以及設置爲高優先級垂直擁抱,大於或等於您的標籤上的高度限制。
問題是,意見有兩種狀態:隱藏,不隱藏。當它不隱藏時,它具有高度和所有約束,並且單元格不能更小 –
當你說隱藏時,我假設你正在設置隱藏屬性?嘗試爲高度約束添加一個出口,並將其設置爲0以隱藏,然後單元格將按預期調整大小。 –
再次使用約束。否則視圖有頂部和底部約束,正如你所說 - 我需要別人在這些項目的網點,並設置0 –
- 1. 從不同表中刪除具有約束條件的多列
- 2. iOS Autolayout:調整具有約束條件的容器
- 3. 具有相同原型單元格的兩個TableView,約束行爲不同
- 4. 如何刪除tableView單元格iOS
- 5. 如何刪除不可見的tableview單元格的下載圖像。在ios
- 6. 如何在tableview單元格中間放置一個視圖的約束條件?
- 7. 如何在swift中調整表格單元格內的約束imageView?
- 8. iOS Tableview單元格在不同部分行中具有相同的佈局
- 9. iOS:自定義tableview單元格中的約束
- 10. UITableViewController具有不同的單元格大小和Storyboard中的單元格內容
- 11. 如何調整自定義單元格中的標籤約束?
- 12. 在不刪除整行的情況下刪除Google表格中的單元格
- 13. iOS 6 UITextView無法刪除相同的約束條件
- 14. 如何在不刪除子表的情況下刪除有約束的表?
- 15. IOS UICollectionView單元格具有不同的單元格實例
- 16. TableView不顯示單元格內容
- 17. 動態調整的tableview單元格的高度根據內容 -
- 18. 如何刪除表中的所有默認約束約束條件
- 19. 如何刪除「unique_together」約束條件
- 20. HABTM刪除約束條件
- 21. 刪除約束iOS
- 22. 具有不同約束條件的Postgres數組
- 23. 如何在不移除約束的情況下「禁用」約束?
- 24. 如何刪除swt中的網格單元格的內容?
- 25. 在iOS中停止TableView單元格UIImage的大小調整
- 26. TableView單元格內容不會在編輯模式下移動iOS 6
- 27. 刪除tableView單元格SWIFT
- 28. iOS UIImageView約束不在表單元格中工作
- 29. 刪除單元格不會清除單元格內的UITextField
- 30. iOS - 設置自動調整約束前後的不同bounds.size值
這裏是可以幫助你的東西 - http://stackoverflow.com/questions/18065938/how-to-use-auto-layout-to-move-other-views-when-a-view-is-hidden –
我檢查了這裏,這裏是約束的工作,但我有非常多的元素,它可以是非常多的代碼來做到這一點 –