高仿糗事百科

 

相关代码展示:

#pragma mark - PSCollectionViewDelegate and DataSource methods

 

- (NSInteger)numberOfRowsInCollectionView:(PSCollectionView *)collectionView

{

    return [_picArray count];

}

 

- (PSCollectionViewCell *)collectionView:(PSCollectionView *)collectionView cellForRowAtIndex:(NSInteger)index

{

    NSDictionary *item = [_picArray objectAtIndex:index];

    

    NeiHanPicCell *cell = (NeiHanPicCell *)[_collectionView dequeueReusableViewForClass:[NeiHanPicCell class]];

    if (!cell) {

        cell = [[NeiHanPicCell alloc] initWithFrame:CGRectZero];

    }

    [cell collectionView:_collectionView fillCellWithObject:item atIndex:index];

    

    return cell;

}

 

- (CGFloat)collectionView:(PSCollectionView *)collectionView heightForRowAtIndex:(NSInteger)index

{

    NSDictionary *item = [_picArray objectAtIndex:index];

    

    return [NeiHanPicCell rowHeightForObject:item inColumnWidth:_collectionView.colWidth];

}

 

- (void)collectionView:(PSCollectionView *)collectionView didSelectCell:(PSCollectionViewCell *)cell atIndex:(NSInteger)index

{

    NSDictionary *dict = [_picArray objectAtIndex:index];

    QiuShiImageViewController *qiushiImageVC = [[QiuShiImageViewController alloc] initWithNibName:@"QiuShiImageViewController" bundle:nil];

    [qiushiImageVC setQiuShiImageURL:[dict objectForKey:@"image0"]];

    qiushiImageVC.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;

    [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade];

    [self presentViewController:qiushiImageVC animated:YES completion:nil];

    [qiushiImageVC release];

}

 

#pragma mark - UIScrollView delegate method

 

- (void)scrollViewDidScroll:(UIScrollView *)scrollView

{

    [_refreshHeaderView egoRefreshScrollViewDidScroll:scrollView];

    [_loadMoreFooterView loadMoreScrollViewDidScroll:scrollView];

}

 

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

{

    [_refreshHeaderView egoRefreshScrollViewDidEndDragging:scrollView];

    [_loadMoreFooterView loadMoreshScrollViewDidEndDragging:scrollView];

}

 

#pragma mark - EGORefreshTableHeaderDelegate methods

 

- (void)egoRefreshTableHeaderDidTriggerRefresh:(EGORefreshTableHeaderView *)view

{

    _reloading = YES;

    _requestType = RequestTypeNormal;

    

    _currentPage = 0;

    [self loadNeiHanPicDataSource];

}

 

- (BOOL)egoRefreshTableHeaderDataSourceIsLoading:(EGORefreshTableHeaderView *)view

{

    return _reloading;

}

 

- (NSDate *)egoRefreshTableHeaderDataSourceLastUpdated:(EGORefreshTableHeaderView *)view

{

    return [NSDate date];

}

 

#pragma mark - LoadMoreFooterView delegate method

 

- (void)loadMoreTableFooterDidTriggerRefresh:(LoadMoreFooterView *)view

{

    _reloading = YES;

    _requestType = RequestTypeLoadMore;

    

    _currentPage++;

    [self loadNeiHanPicDataSource];

}

 

#pragma mark - ASIHTTPRequest delegate methods

 

- (void)requestFinished:(ASIHTTPRequest *)request

{

    JSONDecoder *jsonDecoder = [[JSONDecoder alloc] init];

    NSDictionary *dic = [jsonDecoder objectWithData:[request responseData]];

    

   // NSLog([request responseData]);

    

    [jsonDecoder release];

    

    if (_reloading) {

        _reloading = NO;

        [_refreshHeaderView egoRefreshScrollViewDataSourceDidFinishedLoading:_collectionView];

        [_loadMoreFooterView loadMoreshScrollViewDataSourceDidFinishedLoading:_collectionView];

    }

    

    if (_requestType == RequestTypeNormal) {

        [_picArray removeAllObjects];

    }

    

    [_picArray addObjectsFromArray:[dic objectForKey:@"list"]];

    

    [self dataSourceDidLoad];

}

 

- (void)requestFailed:(ASIHTTPRequest *)request

{

    [self dataSourceDidError];

    if (_reloading) {

        _reloading = NO;

        [_refreshHeaderView egoRefreshScrollViewDataSourceDidFinishedLoading:_collectionView];

        [_loadMoreFooterView loadMoreshScrollViewDataSourceDidFinishedLoading:_collectionView];

    }

}

 

#pragma mark - ASIHTTPRequest method

 

- (void)initNeiHanPicRequestWithPage:(NSInteger)page

{

    self.picRequest = [ASIHTTPRequest requestWithURL:[NSURL URLWithString:api_neihan_picture(page)]];

    _picRequest.delegate = self;

    [_picRequest startAsynchronous];

}

 

#pragma mark - UIAction method

 

- (IBAction)sideButtonClicked:(id)sender

{

    [self sideButtonDidClicked];

}

 

posted @   yulang  阅读(400)  评论(1编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示