6

コレクション ビューを使用して RSS リーダー アプリケーションを開発しました。私の問題は、最初の起動時にアプリが空白になることです。

このプロセスでは、RSS フィードが Web から取得され、デバイス上の一時ファイルに保存され、コレクション ビューを介して表示されます。

私の質問は、ファイルがロードされたら、アプリにデータを自動的にリロードさせるにはどうすればよいですか? ユーザーに最初の空白の画面が表示されないようにします。

このコードを追加しようとしました

       [self.collection1 performBatchUpdates:^{
       [self.collection1 reloadSections:[NSIndexSet indexSetWithIndex:0]];
   } completion:nil];

ただし、初期ビューでは機能しません。

appdelegate から何かをする必要がありますか? またはコレクションView Controller自体から?

お知らせ下さい

以下は、私のデータを取得して表示するために使用されるコードです....

#pragma mark - UICollectionViewDataSourceDelegate
- (NSInteger) numberOfSectionsInCollectionView:(UICollectionView *)collectionView
  {
  return 1;
  }

- (NSInteger) collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
{
 return [_articleListmain count];
}

- (UICollectionViewCell *) collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
 MainCollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"articleCellmain"
                                                                           forIndexPath:indexPath];
NSDictionary *item = [_articleListmain objectAtIndex:indexPath.item];

// set the article image
[cell.image setImageWithURL:[item objectForKey:@"image"]];

// set the text of title UILabel
cell.title.text = [NSString stringWithFormat:@"%@\n\n\n\n", [item objectForKey:@"title"]];
cell.title.textColor = [UIColor colorWithRed:33.0f/255.0f green:74.0f/255.0f blue:146.0f/255.0f alpha:1.0f];

// set the text of summary UILabel
cell.description.text = [NSString stringWithFormat:@"%@\n\n\n\n\n\n\n\n\n", [item objectForKey:@"description"]];


cell.targetURL.text = [NSString stringWithFormat:@"%@\n\n\n\n", [item objectForKey:@"link"]];

cell.category.text = [NSString stringWithFormat:@"%@\n\n\n\n", [item objectForKey:@"category"]];

cell.date.text = [NSString stringWithFormat:@"%@\n\n\n\n", [item objectForKey:@"pubDate"]];

cell.image.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"placement.png"]];


return cell;


}
4

4 に答える 4

9

ダウンロードが完了したことがわかったら、[collectionView reloadData] を使用できるはずです。

于 2013-09-24T00:17:32.683 に答える
4

これを試して

 [self.collection1 performBatchUpdates:^{
   [collectionView reloadData]
 } completion:nil];

ダウンロードが完了したら。

于 2016-02-18T10:07:57.350 に答える
1
[self.collection1 performBatchUpdates:^{
[self.collection1 reloadSections:[NSIndexSet indexSetWithIndex:0]];
} completion:nil];

このコードを以下のコードに置き換えてみてください

[self.collection1 performBatchUpdates:^{
[self.collection1 reloadData];
} completion:nil];
于 2013-09-24T18:17:16.380 に答える
1

コレクションビューが配置されている ViewController の viewWillAppear に [self.collection1 reloadData] を入れただけだと思います。

また

解析直後など、ビューが表示される前でもどこかに reloadData を追加できます。リロードする前に、コレクション ビューが配置されているビューを初期化したことを確認してください。

于 2013-11-04T09:28:47.173 に答える