2016-05-19 5 views
0

Каждый раз, когда я просматриваю табличное представление и появляется новая ячейка, он застрял как миллион секунд, что происходит каждый раз, когда появляется новая ячейка. Я пробовал так много вариантов.tableview не прокручивается плавно iOS xcode

ЭТО ГДЕ QUERY МОЕГО ARRAY

- (void) retrieveStrings { 

    PFQuery *retrieveAllPictures = [PFQuery queryWithClassName:@"String_Pictures"]; 
    [retrieveAllPictures includeKey:@"string_owner"]; 
    [retrieveAllPictures whereKey:@"string_boss" equalTo:[PFObject objectWithoutDataWithClassName:@"String" objectId:original_string_objectID]]; 
    retrieveAllPictures.limit = [loadingNumber intValue]; 
    [retrieveAllPictures orderByDescending:@"createdAt"]; 

    [retrieveAllPictures findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) { 
     if (!error) { 

       originalString = [[NSArray alloc]initWithArray:objects]; 
       [self.StringTable reloadData]; 

     } 
    }]; 
} 

ЭТО МОЯ CELL ДЛЯ строкового INDEX ПУТИ

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString *CellIdentifier = @"originalStringCell"; 

    OriginalStringTableViewCell *originalCell = [StringTable dequeueReusableCellWithIdentifier:CellIdentifier]; 

    tempObject = [originalString objectAtIndex:indexPath.row]; 
    userObject = [tempObject objectForKey:@"string_owner"]; 
    originalTempString = [tempObject objectForKey:@"string_image"]; 

[originalTempString getDataInBackgroundWithBlock:^(NSData *data, NSError *error) { 
     if (!error) { 

      originalCell.original_string_image.image = [UIImage imageWithData:data]; 

      CGFloat ImageWidth = ceil(originalCell.original_string_image.image.size.width); 
      CGFloat ImageHeight = ceil(originalCell.original_string_image.image.size.height); 
      CGFloat NewWidth = ceil ((ImageWidth/ImageWidth) * StringTable.frame.size.width); 
      CGFloat NewHeightImageRow = ceil ((ImageHeight/ImageWidth) * StringTable.frame.size.width); 

      originalCell.original_string_image.frame = CGRectMake(0, 53, NewWidth, NewHeightImageRow); 
      NSLog(@"%f",NewWidth); 

      [originalCell.stringIndicator stopAnimating]; 
      originalCell.stringIndicator.hidden = YES; 

      [SVProgressHUD dismiss]; 

     } 
    }]; 

    return originalCell; 

} 
+0

никогда не возражают против людей, я нашел его сам, используя SDWebImage – user3147328

+0

Даже если вы понять это самостоятельно, опубликовать решение в качестве ответа, а не как редактировать. –

+0

Тим Уилкинсон, ок, я изменил его – user3147328

ответ

0

Я нашел решение, используя SDWEBIMAGE.

SDWebImageManager *StringPicturemanager = [SDWebImageManager sharedManager]; 
    [StringPicturemanager downloadImageWithURL:[NSURL URLWithString:originalTempString.  
     options:0 
     progress:^(NSInteger receivedSize, NSInteger expectedSize) { 
      // progression tracking code 
     } 
     completed:^(UIImage *SDWStringImage, NSError *error, SDImageCacheType cacheType, BOOL finished, NSURL *imageURL) { 
      if (SDWStringImage) { 
       NSLog(@"JAAAAAA %@", SDWStringImage); 
       originalCell.original_string_image.image = SDWStringImage; 
       CGFloat ImageWidth = ceil(originalCell.original_string_image.image.size.width); 
       CGFloat ImageHeight = ceil(originalCell.original_string_image.image.size.height); 
       CGFloat NewWidth = ceil ((ImageWidth/ImageWidth) * StringTable.frame.size.width); 
       CGFloat NewHeightImageRow = ceil ((ImageHeight/ImageWidth) * StringTable.frame.size.width); 
       originalCell.original_string_image.frame = CGRectMake(0, 53, NewWidth, NewHeightImageRow); 
       NSLog(@"%f",NewWidth); 
       [originalCell.stringIndicator stopAnimating]; 
       originalCell.stringIndicator.hidden = YES; 
       [SVProgressHUD dismiss]; 
       } 
      }];