- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { NSUInteger row = [indexPath row]; NSUInteger count = rows; UITableViewCell *cell = nil; if (row == count && row > 0) { // This is the bottom most cell, therefore display the More-Cell static NSString *postCellId = @"moreCell"; cell = [self.tableView dequeueReusableCellWithIdentifier:postCellId]; if (cell == nil) { // it cannot be re-used, so create a new one cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:postCellId]; loadMore = [[UILabel alloc] initWithFrame:CGRectMake(0, 30, 320, 25)]; displaying = [[UILabel alloc] initWithFrame:CGRectMake(0, 50, 320, 25)]; // now add all sub views such as labels and buttons. // If the layout is always the same then you may set it here. } // Now it is either re-used or newly created. However, it carries all the subviews. // Here set the values. You may set the layout here too, if the layout depends on data. loadMore.backgroundColor = [UIColor colorWithRed:255.0 / 255.0 green:255.0 / 255.0 blue:255.0 / 255.0 alpha:1.0]; loadMore.font = [UIFont fontWithName:@"AvenirNext-Bold" size:18.0]; loadMore.textColor = [UIColor colorWithRed:60.0 / 255.0 green:58.0 / 255.0 blue:55.0 / 255.0 alpha:1.0]; loadMore.text = @"Load More..."; loadMore.textAlignment = UITextAlignmentCenter; [cell.contentView addSubview:loadMore]; displaying.backgroundColor = [UIColor colorWithRed:255.0 / 255.0 green:255.0 / 255.0 blue:255.0 / 255.0 alpha:1.0]; displaying.font = [UIFont fontWithName:@"AvenirNext-Bold" size:12.0]; displaying.textColor = [UIColor colorWithRed: 115.0 / 255.0 green: 113.0/ 255.0 blue:112.0 / 255.0 alpha:1.0]; displaying.text = [NSString stringWithFormat:@"Displaying %i Results", rows]; displaying.textAlignment = UITextAlignmentCenter; [cell.contentView addSubview:displaying]; } else { // Display a regular Post-Cell static NSString *postCellId = @"postCell"; cell = [self.tableView dequeueReusableCellWithIdentifier:postCellId]; if (cell == nil) { // it cannot be re-used, so create a new one cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:postCellId]; // now add all sub views such as labels and buttons. // If the layout is always the same then you may set it here. thumbimgView = [[UIImageView alloc] initWithFrame:CGRectMake(10, 10, 80, 80)]; businessLabel = [[UILabel alloc] initWithFrame:CGRectMake(103, 10, 207, 25)]; locationLabel = [[UILabel alloc] initWithFrame:CGRectMake(103, 35, 207, 35)]; locimgView = [[UIImageView alloc] initWithFrame:CGRectMake(220, 75, 20, 15)]; distanceLabel = [[UILabel alloc] initWithFrame:CGRectMake(240, 75, 60, 15)]; } // Now it is either re-used or newly created. However, it carries all the subviews. // Here set the values. You may set the layout here too, if the layout depends on data. dict = [[dictReturn objectForKey:@"listings"] objectAtIndex:0]; NSLog(@"%@", dict[@"business"]); businessLabel.backgroundColor = [UIColor colorWithRed:255.0 / 255.0 green:255.0 / 255.0 blue:255.0 / 255.0 alpha:1.0]; businessLabel.font = [UIFont fontWithName:@"AvenirNext-Bold" size:18.0]; businessLabel.textColor = [UIColor colorWithRed:60.0 / 255.0 green:58.0 / 255.0 blue:55.0 / 255.0 alpha:1.0]; businessLabel.text = dict[@"business"]; [cell.contentView addSubview:businessLabel]; locationLabel.backgroundColor = [UIColor colorWithRed:255.0 / 255.0 green:255.0 / 255.0 blue:255.0 / 255.0 alpha:1.0]; locationLabel.font = [UIFont fontWithName:@"AvenirNext-Regular" size:14.0]; locationLabel.text = dict[@"location"]; locationLabel.textColor = [UIColor colorWithRed: 115.0 / 255.0 green: 113.0/ 255.0 blue:112.0 / 255.0 alpha:1.0]; locationLabel.numberOfLines = 2; locationLabel.lineBreakMode = UILineBreakModeTailTruncation; [cell.contentView addSubview:locationLabel]; listingLoc = [[CLLocation alloc] initWithLatitude:[dict[@"lat"] doubleValue] longitude:[dict[@"lon"] doubleValue]]; AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; float kilometers = [appDelegate.currentLoc distanceFromLocation:listingLoc] / 1000; int milesint = kilometers * 0.621371192; NSString *milesOut = [NSString stringWithFormat:@"%i miles", milesint]; distanceLabel.backgroundColor = [UIColor colorWithRed:255.0 / 255.0 green:255.0 / 255.0 blue:255.0 / 255.0 alpha:1.0]; distanceLabel.font = [UIFont fontWithName:@"AvenirNext-Regular" size:12.0]; distanceLabel.textColor = [UIColor colorWithRed:128.0 / 255.0 green:128.0 / 255.0 blue:128.0 / 255.0 alpha:1.0]; distanceLabel.text = milesOut; [cell.contentView addSubview:distanceLabel]; NSArray *splitImages = [dict[@"image1"] componentsSeparatedByString:@", "]; NSString *imageUrl = [[splitImages objectAtIndex:0] stringByReplacingOccurrencesOfString:@" " withString:@"%20"]; icon = [[UIImage alloc] initWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:imageUrl]]]; [thumbimgView setContentMode:UIViewContentModeScaleAspectFill]; [thumbimgView setClipsToBounds:YES]; thumbimgView.image = icon; [cell.contentView addSubview:thumbimgView]; locimgView.image = [UIImage imageNamed:@"location-icon.png"]; [cell.contentView addSubview:locimgView]; cell.textLabel.text = dict[@"business"]; cell.textLabel.hidden = YES; } return cell; }