我有自定義的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