gpt4 book ai didi

ios - 当 Web 服务中没有可用的新数据时,如何在 iOS 中停止 Spinner 动画?

转载 作者:行者123 更新时间:2023-11-28 21:55:39 25 4
gpt4 key购买 nike

当我滚动表格 View 时,我在表格 View 页脚处制作了一个微调器,然后它开始动画并从 Web 服务加载下一页数据但是当我的 Web 服务数据不再可用时,我想让表格 View 页脚微调器停止动画如何可能请给我解决方案。这里我的数据解析代码是

- (void)viewDidLoad
{
pageNum=0;
self.imageArray =[[NSMutableArray alloc]init];
NSURL * url=[NSURL URLWithString:[NSString stringWithFormat:@"http://www.truemanindiamagazine.com/webservice/news.php?page=%d",pageNum]];
}
dispatch_async(kBgQueue, ^{
data = [NSData dataWithContentsOfURL: url];
[self performSelectorOnMainThread:@selector(fetchedData:) withObject:data waitUntilDone:YES];
});
}

}
-(void)fetchedData:(NSData *)responsedata
{
UIActivityIndicatorView *spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
spinner.frame = CGRectMake(0, 0, 320, 44);
self.newsTable.tableFooterView = spinner;
if (responsedata.length > 0)
{
[spinner startAnimating];
NSError* error;
self.json = [NSJSONSerialization JSONObjectWithData:responsedata options:kNilOptions error:&error];
if ([[_json objectForKey:@"data"] isKindOfClass:[NSArray class]])
{
NSArray *arr = (NSArray *)[_json objectForKey:@"data"];
[self.imageArray addObjectsFromArray:arr];
[self.newsTable reloadData];
NSLog(@"images,%@",self.imageArray);
}
self.newsTable.hidden=FALSE;
}

表格 View 滚动代码是

 -(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{
NSInteger currentOffset = scrollView.contentOffset.y;
NSInteger maximumOffset = scrollView.contentSize.height- scrollView.frame.size.height;
if (maximumOffset - currentOffset <= 0)
{
pageNum = pageNum + 1;
[self getData];
}
}
-(void)getData
{
NSURL * url=[NSURL URLWithString:[NSString stringWithFormat:@"http://www.truemanindiamagazine.com/webservice/news.php?page=%d",pageNum]];
dispatch_async(kBgQueue, ^{
data = [NSData dataWithContentsOfURL:url];
[self performSelectorOnMainThread:@selector(fetchedData:) withObject:data waitUntilDone:YES];
});
}

如果可能,请给我解决方案。第二个问题是当我滚动表格 View 时它会给我所有剩余的页面数据然后我想要当我滚动时我得到第二页数据当我下次滚动时我得到第三页数据如果有可能做一些时间间隔加载下一页的 JSON 数据?

最佳答案

从服务器获得响应后,检查响应数组计数,如果它的县为零,则使微调器停止动画并隐藏微调器。在 else 条件下,如果响应数组计数大于零,则使微调器开始动画并隐藏微调器。我希望这会帮助你。我这样完成了我的应用程序并且非常适合我。我还为我的应用程序调用了分页。此外,如果 arraycount 为零,您可以按照代码跟随 tableview 页脚

self.theTable.tableFooterView = [UIView new];

self.tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];

一切顺利@Ashish Gabani

关于ios - 当 Web 服务中没有可用的新数据时,如何在 iOS 中停止 Spinner 动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26669850/

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