2016-10-27 48 views
1

我有一個UITextView一個UITableViewCell內。 這是不可編輯的,數據textView加載從JSON分析,我使用UITextView,而不是UILabel,因爲我需要在NSAttributed Strings一些輕拍手勢,以一種不能用UILabel完成的方式。變化元件的動態高度約束內的UITableViewCell

對於一排,我想現在就UITextView文字我需要以恆定40

對於我不想顯示文本,我需要它隱藏起來沒有高度排它可見有高度限制,所以我讓高度約束爲0不變。

問題是,雖然在這種情況下UITextView可以被隱藏,它的高度保持。

我使用細胞高度的自動尺寸。

嘗試了很多方式,我在這裏找到了stackoverflow,但不幸的是沒有解決我的問題。

只是要注意,這是沒有必要有這個UITextView特定的高度。我只是希望它取決於我收到的數據,要麼沒有一定的高度可見,要麼隱藏沒有任何高度。

enter image description here

+0

發佈問題的屏幕截圖。嘗試谷歌「自我大小的單元格uitableview」 – Vinodh

+0

剛剛上傳了一個簡單的圖像,顯​​示我的意思,thx – dejix

+1

你可以使用'estimatedRowHeight'屬性'tableView'並設置值'UITableViewAutomaticDimension' – kchromik

回答

0

隱藏子視圖不會從視圖層次結構或佈局計算中刪除它。

如果你想隱藏UITextView並有正確的佈局更新,還有我能想到的兩種選擇。

如果你的目標的iOS> = 9,你應該使用UIStackView。當它的子視圖之一被隱藏時,它會自動調整它的佈局,這是你需要的。

否則,你將不得不代替UITextView刪除等的小單元的底部被限制在紅色視圖(圖像)創建的約束。

+0

嘗試了UIStackView,但不幸沒有被破壞。第二個解決方案不能這樣做,因爲我有更多的元素低於我想隱藏的UITextView。說到佈局更新,我嘗試過setNeedsDisplay(),layoutSubviews(),tableView.beginUpdates()等。我錯過了什麼? – dejix

+0

在你的問題中,當你試圖隱藏UITextView時並不清楚。如果您在'cellForRowAtIndexPath'中執行此操作,我的答案會有效,但是如果您在某處執行操作可能無效。也許用更多的細節更新你的問題。在添加了UIStackView之前,我已經使用了第二種解決方案,它包含了過去的〜10個視圖。它並不會成爲那麼多的代碼。 –

相關問題