Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
- {
- static NSString *CellIdentifier = @"cell";
- UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
- if (cell == nil) {
- cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
- }
- NSDictionary *post = [posts objectAtIndex:indexPath.row];
- cell.textLabel.text = [post objectForKey:@"post_text"];
- cell.detailTextLabel.text = [post objectForKey:@"post_author_name"];
- NSString *postpictureUrl = [post objectForKey:@"picture"];
- NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:postpictureUrl]];
- cell.imageView.image = [UIImage imageWithData:data];
- return cell;
- }
- Use lazy loading in table view
- Use this code
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
- {
- static NSString *CellIdentifier = @"cell";
- UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
- if (cell == nil) {
- cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
- }
- NSDictionary *post = [posts objectAtIndex:indexPath.row];
- cell.textLabel.text = [post objectForKey:@"post_text"];
- cell.detailTextLabel.text = [post objectForKey:@"post_author_name"];
- dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0ul);
- dispatch_async(queue, ^{
- //This is what you will load lazily
- NSString *postpictureUrl = [post objectForKey:@"picture"];
- NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:postpictureUrl]];
- dispatch_sync(dispatch_get_main_queue(), ^{
- cell.imageView.image = [UIImage imageWithData:data];
- [cell setNeedsLayout];
- });
- });
- return cell;
- }
Add Comment
Please, Sign In to add comment