[英]UITableView with collapsable headers - need to adjust autolayout
所以我有這個布局
我正在使用autoLayout,並且最初的tableview有兩個部分,兩個部分都折疊了。 表格視圖和周圍視圖的高度正確。
當部分標題之一通過觸摸手勢展開時,將顯示行,因此表視圖高度增加。 但是,在此階段,父視圖(B)不會增長以適應額外的高度
我已將出口連接到tableview的約束(高度> = 100),並稱為:
-(void)viewDidLayoutSubviews
{
NSLog(@"About to layout subviews");
[super viewDidLayoutSubviews];
CGFloat height = self.infoTableView.contentSize.height - 20.0f;
self.infoTableHeightConstraint.constant = height;
NSLog(@"Set height constraint to %f",height);
[self.view layoutIfNeeded];
}
如果我以編程方式調用section標頭之一在viewDidLoad中打開/關閉,那么這很好,但是當我觸摸以展開/收縮時,則不會進行調整。
關於如何確保視圖B的高度的任何想法都將調整為表格視圖(順便說一句,每行都是不同的高度)
更新
我使用了一些技巧來完成這項工作:
將IBOutlet添加到tableview高度約束(infoTableView)
添加以下方法:
-(void)updateTableHeightConstraint{
[self.infoTableView layoutIfNeeded];
CGFloat height = self.infoTableView.contentSize.height - 20.0f; //- 200.0f;
self.infoTableHeightConstraint.constant = height;
NSLog(@"Set height constraint to %f",height);
[self.view layoutIfNeeded];
}
然后在以下情況下調用此方法
1)最初加載了Tableview 2)切換了表頭
此處的關鍵是在調整約束之前調用[self.infoTableView layoutIfNeeded],以確保table.contentSize.height是正確的
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.