So ändern Sie die UICollectionView footerview Höhe programmgesteuert

Ich Laufe in ein Problem, in meinem UICollectionView, brauche ich anzeigen, um eine Fußzeile, wenn der Datensatz zurückgegeben wird, ist 0. Die codes unten scheint eine gute Arbeit, wenn es keine Aufzeichnungen, Fußzeile angezeigt. Allerdings gibt es ein Problem, wenn es gibt Aufzeichnungen, obwohl die Fußzeile wird ausgeblendet, code-ZEILE 1 scheint keine Auswirkungen haben, was bedeutet, dass der leere Raum der footer ist immer noch da. Eine Idee, wie man es loswerden? ich.e ändern Sie die Fußzeile ' E Höhe auf 0 , oder entfernen Sie einfach die Fußzeile, wenn es Datensatz zurückgegeben.

- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout referenceSizeForFooterInSection:(NSInteger)section {
    CGSize footerSize = CGSizeMake(320, self.view.frame.size.height);
    return footerSize;
  }

- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath
{
    UICollectionReusableView *reusableview = nil;

    if (kind == UICollectionElementKindSectionFooter) {
        reusableview = [collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionFooter withReuseIdentifier:@"FooterView" forIndexPath:indexPath];
        reusableview.hidden = YES;
        if([topicArray count]>0){
            reusableview.hidden = YES;
            //reusableview.frame = CGRectMake(0, 0, 0, 0);
            CGRect newFrame = reusableview.frame;
            newFrame.size.height =0;
            reusableview.frame = newFrame; //<-------- LINE 1.
        }else{
            reusableview.hidden = NO;
            reusableview.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height);
            UIImageView *oopsImgView =[[UIImageView alloc] initWithFrame:CGRectMake(60, 130,200,154)];
           UILabel *label=[[UILabel alloc] ....;
           label.adjustsFontSizeToFitWidth = YES;
           label.textAlignment = NSTextAlignmentCenter;
           label.lineBreakMode = NSLineBreakByWordWrapping;
           label.numberOfLines = 0;
           label.font = [UIFont boldSystemFontOfSize:16.0f];
           label.minimumScaleFactor = 10.0f/15.0f;
           [reusableview addSubview:label];
        }

    }

    return reusableview;
}
InformationsquelleAutor Hammer | 2015-01-09
Schreibe einen Kommentar