liangdrime / SwipeTableView

Both scroll horizontal and vertical for segment scrollview which have a same header. — 类似半糖、美丽说主页与QQ音乐歌曲列表布局效果,实现不同菜单的左右滑动切换,同时支持类似tableview的顶部工具栏悬停(既可以左右滑动,又可以上下滑动)。兼容下拉刷新,自定义 collectionview实现自适应 contentSize 还可实现瀑布流功能
MIT License
2.29k stars 444 forks source link

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

Open miniLV opened 6 years ago

miniLV commented 6 years ago
    类似于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](https://user-images.githubusercontent.com/20677007/45008055-28da0e80-b033-11e8-9723-3d0e584d9cde.gif)

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