iOS-UITableView头视图动态布局

在iOS开发中,tableView几乎无处不在,下面针对其中的一种布局结构做个小结:

如图所示:我把图中的这种结构归纳为“上下结构”,即上面是tableHeaderView,下面是tableView。

利用这种布局时,如果tableHeaderView的高度不是固定的,而是由model赋值决定其高度的话,那么我们可以单独创建一个xib文件作为tableHeaderView,然后在给tableHeaderView赋值完成后自动返回其高度,并添加到tableView上即可。


如:我定义了一个名为"ServiceMoreDetailedView"的xib文件作为tableHeaderView,然后在为其赋值的时候,让其自动返回高度,此时既能够为xib文件赋值,又能够自动返回其高度,可以达到一举两得的目的。


//1.创建tableHeaderView,并让其成为tableView的头视图

     moreDetailedView =[[[NSBundlemainBundleloadNibNamed:@"ServiceMoreDetailedView" owner:self options:nilfirstObject];

     moreDetailedView.frame=CGRectMake(0,0,WIDTH,[moreDetailedView signDataWithModel:self.imageTextDto]);//赋值的同时,自动返回其高度

     self.tableView.tableHeaderView=moreDetailedView;


//2.在ServiceMoreDetailedView内部定义好赋值方法

-(CGFloat)signDataWithModel:(ImageTextAppointmentDto *)imageTextDto{    

    //具体赋值代码,给“ServiceMoreDetailedView”中的子视图进行赋值。

    return CGRectGetMaxY(imgView.frame); //返回赋值完成后的“ServiceMoreDetailedView”最大Y值。

}


iOS-UITableView头视图动态布局_第1张图片




你可能感兴趣的:(iOS-UITableView头视图动态布局)