新浪微博項目---首頁技術點三.上拉重新整理,下拉載入的實現(使用ios內建的小菊花實現)

來源:互聯網
上載者:User

標籤:

一.上拉重新整理,下拉載入的實現(使用ios內建的小菊花實現)

  1.下拉重新整理

#pragma mark ---整合下*拉重新整理控制項-(void)setupDownRefresh{   //1.添加重新整理控制項    UIRefreshControl *control  = [[UIRefreshControl alloc] init];    //只有使用者通過手動下拉重新整理,才會觸發UIControlEventValueChanged事件    [control addTarget:self action:@selector(refreshStateChange:) forControlEvents:UIControlEventValueChanged];    [self.tableView addSubview:control];        //2.馬上進入重新整理狀態(僅僅是顯示重新整理狀態 並不會觸發UIControlEventValueChanged事件)    [control beginRefreshing];            //3.馬上載入資料    [self refreshStateChange:control];}#pragma mark ---整合下拉重新整理控制項的addTargat/action方法-(void)refreshStateChange:(UIRefreshControl *)control{    //1.要求管理者    AFHTTPRequestOperationManager *mgr = [AFHTTPRequestOperationManager manager];        //2.拼接請求參數    AccountModel *account = [AccountTool account];    NSMutableDictionary *params = [NSMutableDictionary dictionary];    params[@"access_token"] = account.access_token;    //取出最前面的微博,(最新的微博 , ID最大的微博)    StatusFrame *firstStatusf = [self.statusFrames firstObject];    if (firstStatusf) {        // 若指定此參數,則返回ID比since_id大的微博(即比since_id時間晚的微博),預設為0        params[@"since_id"] = firstStatusf.status.idstr;    }    //3.發送請求    [mgr GET:@"https://api.weibo.com/2/statuses/friends_timeline.json" parameters:params success:^(AFHTTPRequestOperation *operation, NSDictionary *responseObject) {                        //將"微博字典"數組 轉為 "微博模型"數組        NSArray *newsStatuses  = [StatusModel objectArrayWithKeyValuesArray:responseObject[@"statuses"]];               //將HWStatus模型轉為HWStatusFrame模型        NSArray *newFrames = [self stausFramesWithStatuses:newsStatuses];         //將最新的微博資料,添加到總數組的最前面        NSRange range = NSMakeRange(0, newFrames.count);        NSIndexSet *set = [NSIndexSet indexSetWithIndexesInRange:range];        [self.statusFrames insertObjects:newFrames atIndexes:set];        //重新整理表格        [self.tableView reloadData];        //結束重新整理        [control endRefreshing];                                //顯示最新的微博數量        [self showNewStatusCount:newsStatuses.count];                }     failure:^(AFHTTPRequestOperation *operation, NSError *error) {                  NSLog(@"請求失敗--%@",error);         //結束重新整理         [control endRefreshing];              }];}

----------------------------------------------------------------------------------------------------------
-----------------------------------------------------

 

 

   2.上拉載入資料

#pragma mark ---整合上*拉重新整理控制項-(void)setupUprefresh{        LoadMoreFooter *footer = [LoadMoreFooter footer];        self.tableView.tableFooterView = footer;        UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:self.tableView.frame];    //調用上拉載入的方法*************    [self scrollViewDidScroll:scrollView];        footer.hidden  = YES;    }#pragma mark ---載入更多的微博資料  (上拉載入以前資料時使用)-(void)loadMoreStatus{    //1.要求管理者    AFHTTPRequestOperationManager *mgr = [AFHTTPRequestOperationManager manager];        //2.拼接請求參數    AccountModel *account = [AccountTool account];    NSMutableDictionary *params = [NSMutableDictionary dictionary];    params[@"access_token"] = account.access_token;        //取出最前面的微博,(最新的微博 , ID最大的微博)    StatusFrame *lastStatusf = [self.statusFrames lastObject];    if (lastStatusf) {        // 若指定此參數,則返回ID比since_id大的微博(即比since_id時間晚的微博),預設為0        long long maxId  = lastStatusf.status.idstr.longLongValue - 1;        params[@"max_id"] = @(maxId);    }        //3.發送請求    [mgr GET:@"https://api.weibo.com/2/statuses/friends_timeline.json" parameters:params success:^(AFHTTPRequestOperation *operation, NSDictionary *responseObject) {                        //將"微博字典"數組 轉為 "微博模型"數組        NSArray *newsStatuses  = [StatusModel objectArrayWithKeyValuesArray:responseObject[@"statuses"]];                //將HWStatus模型轉為HWStatusFrame模型        NSArray *newFrames = [self stausFramesWithStatuses:newsStatuses];        //將更多的資料添加到中數組的最後面        [self.statusFrames addObjectsFromArray:newFrames];                //重新整理表格        [self.tableView reloadData];        //結束重新整理(隱藏footer)        self.tableView.tableFooterView.hidden = YES;                    }     failure:^(AFHTTPRequestOperation *operation, NSError *error) {                  NSLog(@"請求失敗--%@",error);         //結束重新整理         self.tableView.tableFooterView.hidden = YES;              }];}

 

 

   

新浪微博項目---首頁技術點三.上拉重新整理,下拉載入的實現(使用ios內建的小菊花實現)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.