gpt4 book ai didi

ios - uitableview中scrollviewdidscroll方法的调用?

转载 作者:行者123 更新时间:2023-11-28 18:32:26 26 4
gpt4 key购买 nike

我正在构建一个文章阅读应用程序。我正在使用 AFNetworking 第三方库将 JSON 数据提取到 UITableView 中。

假设 Json 链接是 www.example.com&page=1 给出 1-10 篇文章,www.example.com&page=2 给出 11-20 篇文章等等。

我已经实现了分页和 scrollViewDidScroll 方法,这意味着当用户滚动时它会显示下十篇文章。

当应用程序启动和 UITableView 加载 scrollViewDidScroll 方法被调用三次但预期调用一次时,我遇到了一个问题。

我在 scrollViewDidScroll 方法中使用增量变量进行分页,因为我说它调用了三次并且 x 值变为 3 并给出了 30 篇文章。

当用户再次滚动时,它会显示接下来的 30 篇文章。我无法弄清楚为什么 scrollViewDidScroll 方法在应用程序启动时调用了三次。

这是我的代码:

        - (void)viewDidLoad
{
[super viewDidLoad];
tempJson = [[NSMutableArray alloc] init];
[self loadNinjas];
}

- (void)loadNinjas {

NSString *jsonLink=[NSString stringWithFormat:@"www.example.com&page=%d",x];
NSURL *url = [[NSURL alloc] initWithString:jsonLink];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
operation.responseSerializer = [AFJSONResponseSerializer serializer];
[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
NSArray *jsonArray = (NSArray *)responseObject;
for (NSDictionary *dic in jsonArray) {
Json *json = [[Json alloc] initWithDictionary:dic];
[tempJson addObject:json];
}
self.jsons = [[NSArray alloc] initWithArray:tempJson];
[self.tableView reloadData];
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Error"
message:[error localizedDescription]
delegate:nil
cancelButtonTitle:@"Ok"
otherButtonTitles:nil];
[alertView show];
}];
[operation start];
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return self.jsons.count ;

}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *Cellidentifier1 = @"ysTableViewCell";

ysTableViewCell *cell1 = [tableView

dequeueReusableCellWithIdentifier:Cellidentifier1 forIndexPath:indexPath];
cell1.TitleLabel1.text = [self.jsons[indexPath.row] title];

cell1.AuthorLabel1.text = [self.jsons[indexPath.row] author];
[cell1.ThumbImage1 setImageWithURL:[NSURL URLWithString:

[self.jsons[indexPath.row] a_image]]];
return cell1;}
- (void)scrollViewDidScroll: (UIScrollView*)scroll {

CGFloat currentOffset = scroll.contentOffset.y;
CGFloat maximumOffset = scroll.contentSize.height - scroll.frame.size.height;

self.tableView.contentInset = UIEdgeInsetsMake(65, 0, 0, 0);
if (maximumOffset - currentOffset <= -60.0) {
x++;

[self loadNinjas];
[self.tableView addInfiniteScrollingWithActionHandler:^{
}];
[self.tableView reloadData];
}
}

最佳答案

- (void)scrollViewDidScroll: (UIScrollView*)scroll滚动时被调用了几次

你应该更好地使用:

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView
willDecelerate:(BOOL)decelerate

关于ios - uitableview中scrollviewdidscroll方法的调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25911364/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com