刷新加载请求数据设置网址

//网址
@property(nonatomic,strong)NSString *url;
//KEY
@property(nonatomic,strong)NSString *KEY;
//页数
@property(nonatomic,assign)int page;
//设施url
-(void)setMyUrl;

//数据请求
-(void)loadData;

//添加下拉刷新 上拉加载
[self addheaderrefresh];
[self addfootrefresh];

// 添加头部刷新
-(void)addheaderrefresh{
MJRefreshGifHeader *header=[MJRefreshGifHeader headerWithRefreshingBlock:^{

    //初始化页数
    self.page=1;
    
    //清空数据源
    [self.datasource removeAllObjects];
    
    //重新发送网络请求
    [self setMyUrl];
    [self loadData];
    
    
}];
 NSArray * imageArr = @[[UIImage imageNamed:@"common_loading_anne_0"],[UIImage imageNamed:@"common_loading_anne_1"]];
//添加正在刷新中的状态
[header setImages:imageArr forState:MJRefreshStateRefreshing];
//闲置状态
[header setImages:@[[UIImage imageNamed:@"common_loading_anne_0"]] forState:MJRefreshStateIdle];
//文字
[header setTitle:@"马上完成....." forState:MJRefreshStateRefreshing];
self.tab.mj_header=header;

}
//上拉加载
-(void)addfootrefresh{
MJRefreshAutoGifFooter *footer=[MJRefreshAutoGifFooter footerWithRefreshingBlock:^{
//页面++
self.page ++;
//重新请求数据
[self setMyUrl];
[self loadData];

}];

NSArray * imageArr = @[[UIImage imageNamed:@"loading_teemo_1"],[UIImage imageNamed:@"loading_teemo_2"]];
[footer setImages:imageArr forState:MJRefreshStateRefreshing];
self.tab.mj_footer=footer;

}

//请求数据
-(void)loadData{
//显示加载栏
[SVProgressHUD showWithStatus:@“加载中…”];

//创建网络请求
AFHTTPSessionManager *manger=[AFHTTPSessionManager manager];

//设置默认请求类型(NSData)
manger.responseSerializer = [AFHTTPResponseSerializer serializer];

[manger GET:self.url parameters:nil progress:^(NSProgress * _Nonnull downloadProgress) {
    
    
} success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
    //解析数据
    NSDictionary *dic=[NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers error:nil];
    NSArray *resultall=dic[self.KEY];
    for (NSDictionary *Dic in resultall) {
        //封装model,建立数据模型 存储数据
        BaseModel *model=[[BaseModel alloc] init];
        [model setValuesForKeysWithDictionary:Dic];
        [self.datasource addObject:model];
    }
    //刷新UI
    [self.tab reloadData];
    
    //取消刷新控件
    [self.tab.mj_header endRefreshing];
    [self.tab.mj_footer endRefreshing];
    //去掉加载栏
    [SVProgressHUD dismiss];
    
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
    //提示用户
    
    
    //取消刷新控件
    [self.tab.mj_header endRefreshing];
    [self.tab.mj_footer endRefreshing];
    //去掉加载栏
    [SVProgressHUD dismiss];
}];

}
//设置网址
-(void)setMyUrl{
self.url=TOUTIAO_PATH;
self.KEY=TOUTIAO_KEY;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 UniApp 中,可以使用下拉刷新组件来实现下拉刷新加载数据的功能。 首先,在你的页面中添加一个 `<uni-scroll-view>` 组件,用于包裹需要下拉刷新的内容。然后,给 `<uni-scroll-view>` 添加 `@scrolltoupper` 事件监听器,当触发下拉刷新时会执行相应的方法。 接下来,你可以在 `data` 中定义一个变量来表示是否正在加载数据,比如 `isLoading`。当开始下拉刷新时,将 `isLoading` 设置为 `true`,并执行加载数据的逻辑。加载完成后,将 `isLoading` 设置为 `false`。 下面是一个简单的示例代码: ```html <template> <view> <uni-scroll-view :upper-threshold="50" @scrolltoupper="onPullDownRefresh"> <!-- 下拉刷新内容 --> <view v-if="isLoading">正在加载...</view> <view v-else> <!-- 展示数据 --> <view v-for="item in dataList" :key="item.id">{{ item.name }}</view> </view> </uni-scroll-view> </view> </template> <script> export default { data() { return { isLoading: false, dataList: [] }; }, methods: { onPullDownRefresh() { if (this.isLoading) { // 正在加载中,不重复请求 return; } this.isLoading = true; // 执行数据加载逻辑,比如调用接口获取数据 // 模拟异步加载 setTimeout(() => { this.dataList = [ { id: 1, name: '数据1' }, { id: 2, name: '数据2' }, { id: 3, name: '数据3' } ]; this.isLoading = false; }, 2000); } } }; </script> ``` 在上述代码中,`<uni-scroll-view>` 组件包裹了需要下拉刷新的内容,当触发 `@scrolltoupper` 事件时会执行 `onPullDownRefresh` 方法。在 `onPullDownRefresh` 方法中,你可以执行加载数据的逻辑,比如调用接口获取数据,并将加载状态控制变量 `isLoading` 设置为 `true`,加载完成后再设置为 `false`。 注意:上述示例代码中的数据加载逻辑只是一个简单的模拟,实际使用时你需要根据你的需求进行相应的修改。同时,你也可以根据需要对下拉刷新的样式进行自定义。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值