Moin!
Ich lade kleine Bilder vom Server, das bewirkt dass das Scrollen sehr hakelig ist. Deswegen habe ich das in NSOperationQueues gepackt. Funktioniert fast, nur werden die Bilder erst nach ein paar Sekunden angezeigt. Wechsle ich in einen anderen Tab und komme zurück sind sie sofort da (in den sichtbaren Zellen).
Wie kann man das richtig refreshen?
Alles anzeigen
Es geht um das erste [cell.contentView addSubview:img], die anderen in [[NSOperationQueue mainQueue] addOperationWithBlock: werden sofort angezeigt. Gebe ich den Code zum Laden der Bilder vom Server in diesen Block, werden die Bilder sofort angezeigt, aber es hakt beim scrollen.
Jemand ne Idee wie ich ein refresh erzwingen kann?
Nachtrag: Wenn ich nichts mache, tauchen die Bilder so langsam nach ca. 7-10 Sekunden auf.
Ich lade kleine Bilder vom Server, das bewirkt dass das Scrollen sehr hakelig ist. Deswegen habe ich das in NSOperationQueues gepackt. Funktioniert fast, nur werden die Bilder erst nach ein paar Sekunden angezeigt. Wechsle ich in einen anderen Tab und komme zurück sind sie sofort da (in den sichtbaren Zellen).
Wie kann man das richtig refreshen?
Quellcode
- NSOperationQueue *myQueue = [[NSOperationQueue alloc] init];
- myQueue.name = @"Download Queue";
- myQueue.MaxConcurrentOperationCount = 3;
- // Add an operation as a block to a queue
- [myQueue addOperationWithBlock: ^ {
- // a block of operation
- NSString *url2=[url stringByReplacingOccurrencesOfString:@".jpg" withString:@"@2x.jpg"];
- img.image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:url2]]];
- NSLog(@"Lade %@",url2);
- [cell.contentView addSubview:img];
- [cell setNeedsDisplay];
- [cell performSelectorOnMainThread:@selector(setNeedsDisplay) withObject:nil waitUntilDone:NO];
- // Get hold of main queue (main thread)
- [[NSOperationQueue mainQueue] addOperationWithBlock: ^ {
- //[cell.contentView addSubview:img];
- NSInteger showinfo=[[searchResultArray objectAtIndex:ind*elementsOfArray+14] intValue];
- if (showinfo>0) {
- UIImageView *imv = [[UIImageView alloc]initWithFrame:CGRectMake(251,55, 25, 25)];
- imv.image=[UIImage imageNamed:@"info2.png"];
- imv.alpha=0.8;
- [cell.contentView addSubview:imv];
- }
- NSString *rolliString=[[NSString alloc]initWithString:[searchResultArray objectAtIndex:ind*elementsOfArray+9]]; // Rolli
- NSInteger rolli1=[rolliString intValue];
- if (rolli1>0) {
- UIImageView *imv = [[UIImageView alloc]initWithFrame:CGRectMake(200,55, 25, 25)];
- imv.image=[UIImage imageNamed:@"rolli2.png"];
- [cell.contentView addSubview:imv];
- }
- [cell setNeedsDisplay];
- }];
- }];
Es geht um das erste [cell.contentView addSubview:img], die anderen in [[NSOperationQueue mainQueue] addOperationWithBlock: werden sofort angezeigt. Gebe ich den Code zum Laden der Bilder vom Server in diesen Block, werden die Bilder sofort angezeigt, aber es hakt beim scrollen.
Jemand ne Idee wie ich ein refresh erzwingen kann?
Nachtrag: Wenn ich nichts mache, tauchen die Bilder so langsam nach ca. 7-10 Sekunden auf.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Gondomir ()