2

現時点では、次のコードを使用しています。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath object:(PFObject *)object {

static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier     forIndexPath:indexPath];

if (!cell) {
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}



PFFile *file = [object valueForKeyPath:@"exercicio.foto"];
[file getDataInBackgroundWithBlock:^(NSData *data, NSError *error) {
    cell.imageView.image = [[UIImage alloc] initWithData:data];
    [cell setNeedsLayout];
}];

return cell;
}

これは機能しますが、画像の読み込みに時間がかかりすぎ、スクロール時の視覚効果があまり良くありません。PFTableViewCell を使用しようとしましたが、解析から PFFile を取得しようとすると、cell.imageView.file 行のインスタンスに認識されないセレクターが送信されましたというメッセージが表示されます。ストーリーボードのクラスを PFTableViewCell に変更すると、アプリはクラッシュしませんが、画像も読み込まれません。

これは、クラッシュを引き起こすコードです。または、ストーリーボードを PFTableViewCell に変更した場合、画像が表示されません。

- (PFTableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath object:(PFObject *)object {

static NSString *CellIdentifier = @"Cell";
PFTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier    forIndexPath:indexPath];

if (!cell) {
    cell = [[PFTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault     reuseIdentifier:CellIdentifier];
}
cell.imageView.file = [object valueForKeyPath:@"exercicio.foto"];

return cell;
}

これについて本当に助けが必要です。たくさんのことを試しましたが、何もうまくいかないようです。ありがとう。

4

3 に答える 3

1

これは機能します

PFFile *thumbnail = object[@"imageFile"];

    cell.imageView.image = [UIImage imageNamed:@"857-rocket.png"];
    cell.imageView.file = thumbnail;

    [cell.imageView loadInBackground];
于 2014-07-31T02:27:21.363 に答える
0

PFImageView のファイル値を設定した後、loadInBackground を呼び出す必要があります。

- (void)loadInBackground

ファイル属性のドキュメントの説明を解析すると、次のことが確認されます。

イメージを格納する Parse のサーバー上のリモート ファイル。loadInBackground: が呼び出されるまで、ダウンロードは開始されないことに注意してください。

完了ブロックを持つメソッドもあります:

- (void)loadInBackground:(void ( ^ ) ( UIImage *image , NSError *error ))completion
于 2014-02-28T15:38:38.817 に答える
0

画像の読み込みに時間がかかりすぎるという問題がある場合は、画像のサムネイル バージョンを作成し、それらをテーブルビューで使用することをお勧めします。次に、テーブル ビューから詳細ビューに移動する場合は、フル サイズの画像を読み込みます。

于 2014-02-28T13:04:49.007 に答える