在作者提供的Demo中,他使用如下方法将EGORefreshTableHeaderView添加到UITableView上:
EGORefreshTableHeaderView *view = [[EGORefreshTableHeaderView alloc] init];
view.frame=CGRectMake(0.0f,self.tableView.contentSize.height, 320, 650);
view.delegate =self;
[self.tableView addSubview:view];
但是本人在使用中发现这种添加方法在一些情况下会失效,出现EGORefreshTableHeaderView错位或者没有旋转动画也无法更新数据的情况,而且在调用此方法前要求必须执行一次reloadData。如果UITableView在初始化的同时无法立即获取需要加载的数据,则EGORefreshTableHeaderView的布局也会受到影响。
其实可以直接将EGORefreshTableHeaderView添加到UITableView的tableFooterView上,如下:
EGORefreshTableHeaderView *view = [[EGORefreshTableHeaderView alloc] init];
view.frame=CGRectMake(0.0f,0.0f, 320, 650);
view.delegate =self;
[self.tableView.tableFooterView addSubview:view];
注意:只能使用addSubView。
如果写成self.tableView.tableFooterView=view,EGORefreshTableHeaderView同样会失去效果。