2017-10-11 4 views
0

次のように私のセットアップラスタライズした場合は:UITableViewCellを再利用する際のラスタライズはどのように機能しますか?

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
    NSString *const cellIdentifier = @"UITableViewCell"; 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier]; 

    if (!cell) { 
     cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier]; 
     cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; 
    } 

    cell.layer.shouldRasterize = YES; 
    cell.layer.rasterizationScale = [UIScreen mainScreen].scale; 
    cell.textLabel.text = exampleTitles[indexPath.row]; 

    return cell; 
} 

私の知る限りでは、システムは、各個別のセルのイメージキャッシュを作成する必要があります。しかし、すべてのセルのタイトルが異なる場合はどうなりますか?キャッシュされたイメージを特定のセルに使用できるかどうかは、システムがどのように判断するのですか?

答えて

0

WWDC14にセッション419の見た後、私は2つのルールがあるが見つかりました:

  • ラスタライズのためのキャッシュサイズが

  • ラスタライズされた画像が追い出され、画面サイズの25.5倍に制限されているが、キャッシュから彼らは100ms以上

そしてiPhone 6P上でプロファイルを行うために使用されていない場合のみ、現在の画面がキャッシュされることを示しています。

関連する問題