2010-12-03 13 views
0

Ich habe ein tableView mit 176 Elementen in einem NSMutableArray bekam und ich implementiert diesen Code für mehrere Bilder in meinem Tableview:Mehrere Bilder in einem Tableview

switch (indexPath.row) { 
case 0: 
cell.imageView.image = [UIImage imageNamed:@"meeting_color.png"]; 
break; 
case 1: 
cell.imageView.image = [UIImage imageNamed:@"call_color.png"]; 
break; 
case 2: 
cell.imageView.image = [UIImage imageNamed:@"calendar_color.png"]; 
break; 
case 3: 
cell.imageView.image = [UIImage imageNamed:@"call_color.png"]; 
break; 
case 4; 
cell.imageView.image = [UIImage imageNamed:@"calendar_color.png"]; 
break; 
default: 
break; 
} 

Das Problem ist, dass ich 176 dieser Fälle und wenn Ich laufe es, es geht extrem langsam! Obwohl ich das schnelle Scrollen api in Tweetie verwendet implementiert.

Antwort

1

Können Sie die Bilder/Zeichenfolgen in einem Array speichern und sie einfach mit indexPath.row abrufen, wenn sie benötigt werden? Ie. cell.imageView.image = [Bilder objectAtIndex: indexPath.row];

Auf diese Weise brauchen Sie nicht die switch-Anweisung?

0

Sie können etwas tun:

Hinweis: Dies ist nur ein psuedocode ist.

String[] img={"calendar_color.png", "call_color.png", "meeting_color.png"}; 
for (int i=0; i <176; i++) 
{ 
    if(i==0) 
    cell.imageView.image= img[2]; 
    else if(i % 2==0){ 
    cell.imageView.image=img[0]; 
    } 
    else { 
    cell.imageView.image=img[1]; 
    } 
} 

Mit diesem als aufschluss> können Sie alle in einem Array holen und die Zeiger mit indexPath.row holen.

+0

läuft das nicht mit genau der gleichen Geschwindigkeit wie mit switch statements? – Jules

+0

Haben Sie die beiden verglichen, um die Leistungsgeschwindigkeit zu bewerten? – Bitmap