簡體   English   中英

帶有可折疊標題的UITableView-需要調整自動布局

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM