3

テーブルをスクロールするという非常に深刻な問題があります。

最初に、バックグラウンドで画像をロードし、テーブルセルに設定するためにGCDを使用しました。しかし、テーブルはスムーズにスクロールしていませんでした。そのためにSDWebImageを使用しましたが、同じことが起こっています。

だれかこの理由を教えてください。テーブルのスクロールが期待どおりにスムーズでない理由。

私のアプリは同じ目的のためだけにリリースを待っているので、あなたの見解を教えてください.

コード :

-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{

           NSString *CellIdentifier = @"Cell";
        customCellForExhibitor *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

        if (cell == nil)
        {
            NSArray *xibPath = [[NSBundle mainBundle]loadNibNamed:@"customCellForExhibitor" owner:self options:nil];
            for (id fileObject in xibPath)
            {
                cell = (customCellForExhibitor*)fileObject;
            }
        }

        objDataModel = [parserDataContentArray objectAtIndex:indexPath.section];

        cell.exhibitorNameLabel.text = [objDataModel exhibitorNameObjectClass];
        cell.exhibitorText.text = [objDataModel exhibitorOfferObjectClass];
        cell.exhibitorSponsorType.text = [objDataModel exhibitorSponsorTypeObjectClass];

        [cell.exhibitorSponsorType setTextAlignment:NSTextAlignmentRight];



//        #pragma mark GCD;
//    
//        NSString *ImageURL = [[parserDataContentArray objectAtIndex:indexPath.section] exhibitorImageObjectClass];
////        NSData *imageData = [NSData dataWithContentsOfURL:[NSURL URLWithString:ImageURL]];
////        cell.exhibitorImage.image = [UIImage imageWithData:imageData];
//
//        dispatch_queue_t concurrentQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
//        //this will start the image loading in bg
//        dispatch_async(concurrentQueue, ^{
//        NSData *imageData = [NSData dataWithContentsOfURL:[NSURL URLWithString:ImageURL]];
//        
//        //this will set the image when loading is finished
//        dispatch_async(dispatch_get_main_queue(), ^{
//            
//            cell.exhibitorImage.image = [UIImage imageWithData:imageData];
//            [cell setNeedsDisplay];
//
//                                                    });
//                                        });

     NSString *ImageURL = [[parserDataContentArray objectAtIndex:indexPath.section] exhibitorImageObjectClass];
     [cell.exhibitorImage setImageWithURL:[NSURL URLWithString:ImageURL]
                      placeholderImage:[UIImage imageNamed:@"placeholder.png"]];



        if ([cell.exhibitorSponsorType.text isEqualToString:@"Gold"]) {
            cell.exhibitorSponsorType.textColor = [UIColor colorWithRed:255/255.0 green:215/255.0 blue:0 alpha:1];

        }

        else if ([cell.exhibitorSponsorType.text isEqualToString:@"Silver"]){
            cell.exhibitorSponsorType.textColor = [UIColor colorWithRed:192/255.0 green:192/255.0 blue:192/255.0 alpha:1];
        }
        else cell.exhibitorSponsorType.textColor = [UIColor colorWithRed:229/255.0 green:228/255.0 blue:226/255.0 alpha:1];

        return cell;



}

よろしくお願いいたします。

4

1 に答える 1