UICollectionViewCell imageView

Posted by Flink on Stack Overflow See other posts from Stack Overflow or by Flink
Published on 2012-09-23T21:34:37Z Indexed on 2012/09/23 21:37 UTC
Read the original article Hit count: 353

Filed under:
|

Code works fine until I changed UIViewController with tableView to UICollectionViewController.

Now all cells shows same image, sometimes it flipping to nil. However textLabels are OK.

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"TourGridCell";
    TourGridCell *cell = (TourGridCell *)[collectionView dequeueReusableCellWithReuseIdentifier:CellIdentifier forIndexPath:indexPath];
    Guide *guideRecord = [self.fetchedResultsController objectAtIndexPath:indexPath];

    cell.titleLabel.text = [guideRecord.name uppercaseString];

    cell.titleLabel.backgroundColor = [UIColor clearColor];
    if ([guideRecord.sights count] > 0) {

        if ([[guideRecord.sights objectAtIndex:0]valueForKey:@"thumbnail"]) {
            cell.imageView.image = [UIImage drawImage:[[guideRecord.sights objectAtIndex:0]valueForKey:@"thumbnail"] inImage:[UIImage imageNamed:@"MultiplePhotos"] inRect:CGRectMake(11, 11, 63, 63)];

        }else {
            cell.imageView.image = [UIImage imageNamed:@"placeholder2"];
        }

        NSMutableString *sightsSummary = [NSMutableString stringWithCapacity:[guideRecord.sights count]];
        for (Sight *sight in guideRecord.sights) {
            if ([sight.name length]) {
                if ([sightsSummary length]) {
                    [sightsSummary appendString:@", "];
                }
                [sightsSummary appendString:sight.name];

            }
        }
        if ([sightsSummary length]) {
            [sightsSummary appendString:@"."];
        }
        cell.sightsTextLabel.text = sightsSummary;
        cell.detailTextLabel.text = [NSString stringWithFormat:NSLocalizedString(@"%i", nil) , [guideRecord.sights count]];
        cell.detailTextLabel.hidden = NO;
        //        cell.textLabel.alpha = 0.7;
        NSPredicate *enabledSightPredicate = [NSPredicate predicateWithFormat:@"notify == YES"];
        NSArray *sightsEnabled = [[[guideRecord.sights array] filteredArrayUsingPredicate:enabledSightPredicate]mutableCopy];
        NSPredicate *visitedSightPredicate = [NSPredicate predicateWithFormat:@"visited == YES"];
        NSArray *sightsVisited = [[[guideRecord.sights array] filteredArrayUsingPredicate:visitedSightPredicate]mutableCopy];

        if ([sightsEnabled count] > 0)
        {
            NSLog(@"green_badge");
            cell.notifyIV.image = [UIImage imageNamed:@"green_badge"];
        }
        else if (sightsVisited.count == 0) {
            NSLog(@"new_badge");
            cell.notifyIV.image = [UIImage imageNamed:@"new_badge"];
        }
        else
        {
            cell.notifyIV.image = nil;
        }

    }
    else {
        cell.notifyIV.hidden = YES;
        //        cell.textLabel.textColor = RGB(0, 50, 140);
        cell.detailTextLabel.hidden = YES;
        cell.sightsTextLabel.text = nil;
    }

    return cell;
}

© Stack Overflow or respective owner

Related posts about ios6

Related posts about uicollectionview