![](/img/trans.png)
[英]how to recognize label click on custom UITableViewCell - Swift 3
[英]How to maintain constraints even after deleting label in UITableViewCell - Swift 3
所以目前,我有一個像這樣的tableviewcell
我想發生的是,如果日期的開銷已經存在,則頂部標簽應該消失,tableviewcell的高度應該從95減少到64,並且所有內容都應該在中心對齊。 有點像這樣
我嘗試了很多方法。
使用2個不同的單元格並進行切換,但這沒有用,因為一次只返回了一筆費用,並且我的tableviewcontroller沒有正確填充。
嘗試使用堆棧視圖,但是那樣,我無法獲得與當前匹配的約束。
我已經在heightForRowAtIndexPath方法中返回了所有正確的行高,但是它會集中減小高度,並且某些數據被剪切了。
如何實現我想做的事情(標簽不可見,行高減小並且所有內容垂直居中)?
這是用於切換單元的代碼。
func tableView(_ tableView: UITableView,
heightForRowAt indexPath: IndexPath) -> CGFloat
{
if newMode==true {
return 95
}
else if newMode==false {
return 64
}
else {
return 0
}
}
這行得通,但是它減小了從頂部和底部開始的高度,我只希望減小從頂部開始的高度。
您不應使用委托方法heightForRowAt
而應使用:
tableView.rowHeight = UITableViewAutomaticDimension
tableView.estimatedRowHeight = 80
然后給(費用日期)標簽賦予較高的約束條件,並為其連接出口。
在cellForRowAtIndex
委托方法中應具有:
if expense != nil
{
lblExpenseConstraintHeight.constant = 0
}
else
{
lblExpenseConstraintHeight.constant = 34
}
cell.layoutIfNeeded()
編輯:
有關動態tableViewHeight的更多信息:
在UITableView中使用自動布局以獲取動態單元格布局和可變的行高
另一種可能的解決方案是刪除(費用日期)標簽的高度限制,並將其文本設置為空字符串。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.