2

EGOTableViewPullRefreshを使用 して、私のtableView. そして、EGORefreshTableHeaderView.hでカスタマイズされたメソッドを呼び出して、を表示してリロードできる を追加UIBarButtonItemしました(IBAction)refreshBtnClickerefreshByClickRegreshBtn:EGORefreshTableHeaderViewtableView

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: myにデータがない場合EGORefreshTableHeaderView、クリックした後に常に表示されUIBarButtonItemます。しかし、ダウンロードしたデータがいっぱいtableViewになると、が呼び出されてもEGORefreshTableHeaderView、もう一度クリックしても表示されません。どんな助けでも大歓迎です:)UIBarButtonItemrefreshByClickRegreshBtn:

4

1 に答える 1

1

次のように置き換えることで問題が修正されまし [scrollView setContentInset:UIEdgeInsetsMake(60.0f, 0.0f, 0.0f, 0.0f)][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];
}
}
于 2012-07-20T13:31:44.317 に答える