我有自定义的tableview单元格,它下面有UITextView和UIView。 TextView使用sizeToFit方法将其高度调整为内容。视图具有固定的高度。细胞高度正在变化以适应内容。细胞显示很好。在TableView中隐藏UIView并更新约束条件
我想要的是在我的一些细胞中隐藏视图。布不仅设置其隐藏的属性是真实的,而且调整细胞的高度。
我有自定义的tableview单元格,它下面有UITextView和UIView。 TextView使用sizeToFit方法将其高度调整为内容。视图具有固定的高度。细胞高度正在变化以适应内容。细胞显示很好。在TableView中隐藏UIView并更新约束条件
我想要的是在我的一些细胞中隐藏视图。布不仅设置其隐藏的属性是真实的,而且调整细胞的高度。
你说你认为有一个固定的高度?所以,如果它有高度限制,那么可以添加IBOutlet。
当你想隐藏你的视图时,只需将其设置为零。
heightConstraint.constant = 0;
为了使您的生活更轻松(如果你使用的是iOS 9及以上),在您的自定义单元格使用UIStackView
。
现在,以下步骤是让你的UITableViewCell
自动调整其高度为UITextView
添加此设置控制器的viewDidLoad()
方法内,根据需要修改您UITableView
。
self.tableView.estimatedRowHeight = 150
self.tableView.rowHeight = UITableViewAutomaticDimension
落实UITextViewDelegate
,并确保你你的TextView的委托设置自。
// MARK: - TextView Delegate
extension YourController: UITextViewDelegate {
func textViewDidChange(_ textView: UITextView) {
let currentOffset = self.tableView.contentOffset
UIView.setAnimationsEnabled(false)
self.tableView.beginUpdates()
self.tableView.endUpdates()
UIView.setAnimationsEnabled(true)
tableView.setContentOffset(currentOffset, animated: false)
}
}
最后,关闭textView的水平和垂直滚动指示器。
然后,为了切换单元格中任何视图的可见性,只需切换它并重新加载tableView即可。
你的问题并不完全清楚,请将代码截图一并发布。 –
@DarkInnocence,我添加了一个截图 - 它是否清楚? – moonvader