liangdrime/SwipeTableView

动态修改headview高度的时候显示不正确

Opened this issue · 0 comments

    类似于tableView - headerView是用masonry设置的,根据数据不同动态设置高度
    UIView *headerView = _tableViewHeader;
    CGFloat height = [headerView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize].height;
    CGRect frame = headerView.bounds;
    frame.size.height = height;
    headerView.frame = frame;
    [self.tableView setTableHeaderView:headerView];

使用 SwipeTableView刷新如下

//如果没刷新 _swipeTableView 
- (void)p_refreshTableHeaderViewFrame{
    
    UIView *headerView = _tableViewHeader;
    CGFloat height = [headerView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize].height;
    CGRect frame = headerView.bounds;
    frame.size.height = height;
    headerView.frame = frame;
    _swipeTableView.swipeHeaderView = headerView;
}

headerView 高度确实是动态变化了,但是 searchBar位置一直固定

使用 [_swipeTableView reloadData];

- (void)p_refreshTableHeaderViewFrame{
    
    UIView *headerView = _tableViewHeader;
    CGFloat height = [headerView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize].height;
    CGRect frame = headerView.bounds;
    frame.size.height = height;
    headerView.frame = frame;
    _swipeTableView.swipeHeaderView = headerView;
    [_swipeTableView reloadData];
    
}

test2

searchBar位置不变,虽然searchBar位置是在headerView下方,但是 headerView 高度变化是,高度增加是,y --> 变成负数,maxY不变