UITableView

headerview

通常情况下 tableview 设置 headerview 的时候,headerview 的高度是根据其本身高度自适应的。但是遇到了一个情况就是其高度始终比 给他赋值的 headerview 小44。通过如下方式解决的

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.

    _headerView = [UserHeaderView loadViewFromXIB];
}

- (void)viewDidLayoutSubviews{
    [super viewDidLayoutSubviews];
    self.tableView.tableHeaderView = _headerView;
}

方式就是在 viewDidLayoutSubviews 里面给 tableview 的 headerview 赋值

另外如果需要改变 headerview 的高度的话,需要重新进行赋值

self.tableView.tableHeaderView = nil;
_headerView.frame = newFrame;
self.tableView.tableHeaderView = _headerView;

tableview group style 边框问题

这个边框是无法去掉的

去掉 tableview 顶部的 padding

只要给 tableview 赋值一个高度为零的 headerview 就可以了

UIView* headerView = [[UIView alloc] initWithFrame:CGRectMake(0,0,SCREEN_WIDTH,CGFLOAT_MIN)];
self.tableView.tableHeaderView = headerView;

这样 tableview 顶部的 padding 就去掉了

UITableView cell lines 靠左

UITableViewCell 重写下面方法

- (UIEdgeInsets)layoutMargins{
    return UIEdgeInsetsZero;
}