余分な人口がある場合、私tableView
の巻物は遅れます。最大20個のセルが適切ですが、それを超えると、スクロール中に遅れが始まります。より良いスクロール結果をもたらす実装を提案してください。これが私がそれをした方法です:
UITableViewCell
カスタムクラスを定義しました。
セルには4つのラベルがあり、imageView
(各アウトレットは合成されたプロパティです):
にを配置し、tableView
次のviewController
ように入力しました。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"CustomCell";
MyCustomCell *cell = (MyCustomCell *) [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"MyCustomCell" owner:self options:nil];
for (id currentObject in topLevelObjects)
if ([currentObject isKindOfClass:[UITableViewCell class]]){
cell = (MyCustomCell *) currentObject;
break;
}
}
[cell.label_descr setText:@"bla-bla-bla"];
[cell.label_date setText:@"bla-bla-bla"];
[cell.label_time setText:@"bla-bla-bla"];
[cell.label_numeric setText:@"bla-bla-bla"];
[cell.image_view setImage:[UIImage imageWithContentsOfFile:@"bla-bla-bla"]];
return cell;
}
ご覧のとおり、各セルのテキストの量は悲惨であり、に使用される画像UIImageView
は約25x25.pngファイルです。
私tableView
は300個以上のセルを保持することになっています(私を責めないでください、私には「地獄からの顧客」がいます)。
tableView
(多くの)遅れなしに、スクロールをよりスムーズにする方法を提案してください。または、それらの「300セルを超える」を私の「地獄から」の顧客に提示する別の方法。
よろしくお願いします!
PS:重複している場合は申し訳ありませんが、見つかった解決策はまったく役に立ちませんでした。
編集:
imageViewに使用される画像について:
私は2つの異なる画像のみを使用します:
- 「チェックマーク」-トランザクションが完了しました
- および「保留中」-処理中のトランザクション
たぶん、tableViewCell xibで2つのimageViewアウトレットを定義し、必要な画像を毎回設定するのではなく、必要なimageViewを選択するために使用しますか?
解決策が見つかりました。皆さん、特にiNoobとmax_に感謝します。
- tableViewCellのxibで、imageViewのデフォルト画像として「checkMark」を設定しました。
セルの値を定義するとき、
cellForRowAtIndexPath
必要な場合にのみ、次のように言います。if_I_should_present_a_pending_image:
[cell setPending];
「checkMark」を「保留中の」画像(tableViewCellクラスで定義されたメソッド)に置き換えるには:
- (void)setPending{
self.image_view.animationImages = [NSArray arrayWithObjects:
[UIImage imageNamed:@"pending_1.png"],
[UIImage imageNamed:@"pending_2.png"],
[UIImage imageNamed:@"pending_3.png"],
[UIImage imageNamed:@"pending_4.png"],
nil];
self.image_view.animationDuration = 2.0;
self.image_view.animationRepeatCount = 0;
[self.image_view startAnimating];
}
l
その後、テーブルは魅力のようにスクロールします。皆さん、ありがとうございました。乾杯。