[英]Have a button to fire EGORefreshTableHeaderView
我使用EGOTableViewPullRefresh在tableView
獲得拉動刷新效果。 我添加了一個帶有(IBAction)refreshBtnClicke
的UIBarButtonItem
,它可以在EGORefreshTableHeaderView.h中調用自定義方法refreshByClickRegreshBtn:
來顯示EGORefreshTableHeaderView
並重新加載我的tableView
TableViewController.m
-(IBAction)refreshBtnClicked{
[_refreshHeaderView refreshByClickRegreshBtn:self.tableView];
}
EGORefreshTableHeaderView.h
- (void)refreshByClickRegreshBtn:(UIScrollView *)scrollView{
[self setState:EGOOPullRefreshLoading];
NSLog(@"scrollView.contentInset.top :%f", scrollView.contentInset.top);// it's always 0 here
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.2];
[scrollView setContentInset:UIEdgeInsetsMake(60.0f, 0.0f, 0.0f, 0.0f)];
[UIView commitAnimations];
if ([_delegate respondsToSelector:@selector(egoRefreshTableHeaderDidTriggerRefresh:)]) {
[_delegate egoRefreshTableHeaderDidTriggerRefresh:self];
}
}
問題 :當tableView
沒有數據時, EGORefreshTableHeaderView
后,將始終顯示UIBarButtonItem
。 但是,一旦下載的數據填充到tableView
,即使調用了refreshByClickRegreshBtn:
UIBarButtonItem
當我再次單擊UIBarButtonItem
時, EGORefreshTableHeaderView
將永遠不會出現。 任何幫助表示贊賞:)
通過將[scrollView setContentInset:UIEdgeInsetsMake(60.0f, 0.0f, 0.0f, 0.0f)]
[scrollView setContentOffset:CGPointMake(0, -60)]
為[scrollView setContentOffset:CGPointMake(0, -60)]
可以解決問題。
- (void)refreshByClickRegreshBtn:(UIScrollView *)scrollView{
[self setState:EGOOPullRefreshLoading];
NSLog(@"scrollView.contentInset.top :%f", scrollView.contentInset.top);// it's always 0 here
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.2];
//[scrollView setContentInset:UIEdgeInsetsMake(60.0f, 0.0f, 0.0f, 0.0f)];
[scrollView setContentOffset:CGPointMake(0, -60)];
[UIView commitAnimations];
if ([_delegate respondsToSelector:@selector(egoRefreshTableHeaderDidTriggerRefresh:)]) {
[_delegate egoRefreshTableHeaderDidTriggerRefresh:self];
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.