4

まず、テーブルビューを範囲外にスクロールしているときにメモリリークが発生しています。ここと同じ問題。

また、スクロールは十分に高速ですが、スクロール中に「ちょっと震えます」。セルは再利用可能です。

コード:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";

    Country *country=[[self.items objectAtIndex:[indexPath section]] objectAtIndex:[indexPath row]];
    CountryCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    cell.imageView.image=[UIImage imageNamed:country.countryFlag];
    cell.countryName.text=country.countryName;
    cell.currencyCode.text=country.code;
    cell.currencyOriginalName.text=country.originalUnitName;

    return cell;
}

アプリ: iOS 5、ARC、ストーリーボード。

この tableView の動作の本当の理由とそれを修正する方法は何ですか?

4

1 に答える 1

5

デバイスでスクロールがうまくいかない場合は、プロトタイプでサブビューが正しく構成されていない可能性があります。上記の方法では、高価なことは何もしていません。

コア アニメーション インストゥルメントを使用する (デバイスのみ) - スクロール時のフレーム/秒を確認します。できるだけ 60 fps に近づけたいと考えています。

「カラーブレンドレイヤー」をオンにすると、透明に描画されたものはすべて赤で強調表示されます。可能であれば、セルからすべての透明度を削除し、すべてを緑色にします。これは、プロトタイプのサブビューで背景色と不透明フラグを正しく設定するだけの問題かもしれません。

画像が画像ビューと同じサイズでない場合、セルが表示されるたびにサイズを変更することになります。これもコストのかかる操作です。

于 2012-04-05T06:17:05.067 に答える