1

インターフェイスを設定した xib を使用しましたが、スムーズに使用できないのはなぜですか?

- (UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"CustomerCell";
    CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    if (!cell) {
        NSArray * nib = [[NSBundle mainBundle] loadNibNamed:@"MSNeedCheckCell" owner:self options:nil] ;
        cell = [nib objectAtIndex:0];
    }
//填充cell的内容
}
4

2 に答える 2

0

クラスの init メソッドから次のメソッドを呼び出してみてください。

[self.tableView registerNib:[UINib nibWithNibName:@"MSNeedCheckCell" bundle:nil]
     forCellReuseIdentifier:@"CustomerCell"];

そして、if (!cell) {常にセルを返すため、コードのセクション全体を削除できます。これにより、セルが必要になるたびに nib がロードされるのではなく、1 回だけロードされるため、はるかに高速になります。

于 2013-02-16T02:38:27.637 に答える
0

文字通り、これですべてですか?または、他のことを行っていますか (たとえば、サブクラス化されたセル、または簡潔にするために省略した可能性のある他のコード)。

滑らかさの欠如の最も一般的な原因は (滑らかさによって、テーブルビューをスクロールするときに UI が途切れることについて話していると思います)、フォアグラウンド キューで画像を操作している場合です。

WWDC 2012 - 211 - Building Concurrent User Interfacesは、Instruments を使用してパフォーマンスのボトルネックの原因を特定する方法を、素晴らしく実践的に示しています。明らかに、彼らはそこで非常に具体的な設計上の考慮事項に焦点を合わせていますが、Instruments チュートリアルは非常に役に立ちます。この特定のコード行が本当に問題であることを確認してから、寝不足になる前に確認することをお勧めします。

于 2013-02-16T02:42:27.137 に答える