새로 고침 방식

3787 단어

인터넷 노트

  • 실수하기 쉬운 곳: 1.블록을 통해 다른 페이지에 데이터를 전달합니다. 예를 들어 여기는 수조입니다. 여기서 하나의 방법을 정리하고 파라미터를 통해 다른 페이지의 메시지나 다른 것을 되돌려주면 블록으로 쓸 수 있습니다. 그리고 다른 페이지가 이 방법을 호출할 때 블록 파라미터에 직접 값을 부여하면 됩니다!!block의 매개 변수 NSURLSessionResponseCancel은 서버에 데이터 전송을 취소하라고 알려줍니다 NSURLSessionResponseAllow는 서버에 전송을 허용하는 completionHandler(NSURLSessionResponseAllow); #블록 매개 변수를 전달하는 방법은 다음과 같습니다
    +(void)getComicDataWithStartId:(int)startId complete:(void(^)(NSArray *array))
    //1. manager
    AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
    //2. 
    [manager GET:Comic_Get parameters:@{@"pageSize":@5, @"startIdx":[NSNumber numberWithInt:startId]} success:^(NSURLSessionDataTask *task, id responseObject) {
       //3. 
        NSMutableArray * dataArray = [[NSMutableArray alloc] init];
          // 
        for (NSDictionary * dict in responseObject) {
               // 
            YTModel * model = [[YTModel alloc] initWithDict:dict];
               // 
            [dataArray addObject:model];
        }
    // block 
    complete(dataArray);
    } failure:^(NSURLSessionDataTask *task, NSError *error) {   
        NSLog(@" ");
        complete(@[@" "]);      
    }];   
    }
    # 위의 페이지에서 하나의 그룹을 전달했습니다. 사용 방법은 다음 페이지의 데이터 원본 그룹에 전달된 그룹을 추가하는 것입니다
    //======2. YTNetWorkManager ========
    [YTNetWorkManager getComicDataWithStartId:(int)self.dataArray.count complete:^(NSArray *array) {
        //blcok 
        [self.dataArray addObjectsFromArray:array];
        [_tableView reloadData];
    }];

    몇 가지 데이터 리셋 방법 요약: 드롭다운 리셋은 일반적으로 제3자를 통해 하는 MSRfresh

  • 첫 번째 단계는tableView 설정을 통해 새로 고침을 하고 해당하는 블록에서 페이지에 데이터를 불러오는 것을 알립니다
  • 두 번째 단계는 페이지에 관찰자를 등록하고 데이터를 불러오거나 새로 고칩니다
  • 3단계가 적당할 때 리셋을 정지합니다
  • 마지막으로 관찰자 취소 1.드롭다운 새로 고침 추가
    // tableView , tableViewz 
    self.tableView.mj_heaer = [MJRefreshNormaHeader headerWithRefreshingBlock:^{
    // 
    // 
    [[NSNotificationCenter defaultCenter]postNotificationName@"loadMoreData" object:@"isRefresh"];
    }
    }];
    2.기본 업로드 추가
    self.tableView.mj_footer = [MJRefreshAutoNormalFooter footerWithRefreshingBlock:^{
    // block
    // 
    [NSNotificationCenter defaultCenter]postNotificationName:@"loadMore"
    object:nil];
    }];
    3.애니메이션의 업로드 추가
    MJRefreshAutoGifFooter *footer = [MJRefreshAutoGifFooter footerWithRefreshingTarget:self refreshingAction:@selector(loadMoreData)];
      //  
      NSMutableArray * images = [[NSMutableArray alloc] init];
      for (int i = 0; i < 5; i++) { 
          UIImage * image = [UIImage imageNamed:[NSString stringWithFormat:@"p%d", i]];
          [images addObject:image];
      }
      [footer setImages:images forState:MJRefreshStateRefreshing];
      //  
      self.mj_footer = footer;
      !!!!! loadMoreData 
      - (void)loadMoreData{
      [[NSNotificationCenter defaultCenter]         postNotificationName:@"loadMore" object:nil];
      }
    ## 리셋 설정이 완료되면 관찰자를 등록하고 데이터를 요청하거나 리셋해야 합니다
    //- (void)viewDidLoad {
    [super viewDidLoad]; 
    // 
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(getNetData:) name:@"loadMore" object:nil]; 
    // 
    [self getNetData:nil];    
    // 
    [self creatUI];
    }
    //- (void)getNetData:(NSNotification *)nof{
    //======1. =======
    // 
    if ([nof.object isEqualToString:@"isRefresh"]) {
              // 
      [self.dataArray removeAllObjects];
    }    
    //======2. YTNetWorkManager ========
    [YTNetWorkManager getComicDataWithStartId:(int)self.dataArray.count complete:^(NSArray *array) {
      //blcok 
      [self.dataArray addObjectsFromArray:array];
      [_tableView reloadData];        
      // 
      [_tableView.mj_footer endRefreshing];
      [_tableView.mj_header endRefreshing];        
    }];
    }
    // 
    //-  (void)dealloc{
    // 
    [[NSNotificationCenter defaultCenter] removeObserver:self];   
    }
  • 좋은 웹페이지 즐겨찾기