我在一个单元格中具有不同内容(视图,标签,图像视图)的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. 具有相同原型单元格的两个TableView,约束行为不同
- 3. 如何删除tableView单元格iOS
- 4. 如何在tableview单元格中间放置一个视图的约束条件?
- 5. 如何在swift中调整表格单元格内的约束imageView?
- 6. UITableViewController具有不同的单元格大小和Storyboard中的单元格内容
- 7. IOS UICollectionView单元格具有不同的单元格实例
- 8. 如何在不删除子表的情况下删除有约束的表?
- 9. TableView不显示单元格内容
- 10. 动态调整的tableview单元格的高度根据内容 -
- 11. 如何删除表中的所有默认约束约束条件
- 12. 删除约束iOS
- 13. TableView单元格内容不会在编辑模式下移动iOS 6
- 14. 具有不同约束条件的Postgres数组
- 15. TableView中每个具有不同布局的单元格,滚动优化如何?
- 16. 如何在Knockoutjs中合并具有相同内容的表格单元格?
- 17. 删除单元格内容时删除键被按下
- 18. 如何从tableview行单元格中删除单独的行?
- 19. 如何获取具有不同单元类别的单元格
- 20. TableView不显示单元格中的内容(Swift)
- 21. 我如何调整与分组的单元格tableview中的单元格
- 22. 给图像不同的单元格tableview
- 23. 如何删除Db2中列的默认约束条件
- 24. 如何使用VBA删除Word中的单元格内容?
- 25. 指定单元格而不删除它的原始内容
- 26. 当按下tableView单元格时在不同ViewController中打开URL
- 27. 如何在没有约束检查的情况下删除表
- 28. 删除子类属性中的所有验证约束条件
- 29. Vue组件不具约束力风格
- 30. 如何删除表和约束条件(如果存在)?
这里是可以帮助你的东西 - http://stackoverflow.com/questions/18065938/how-to-use-auto-layout-to-move-other-views-when-a-view-is-hidden –
我检查了这里,这里是约束的工作,但我有非常多的元素,它可以是非常多的代码来做到这一点 –