2012-12-20 45 views
2

CollectionViewCell i子類包含一個UILabel。 爲了得到網格,我添加了一個CGRectInset到單元格的UILabel。UICollectionViewCells子視圖滾動後呈現錯誤

- (id)initWithFrame:(CGRect)frame { 
    self = [super initWithFrame:frame]; 
    if (self) { 
     self.backgroundColor = [UIColor orangeColor]; 
     self.label = [[UILabel alloc] initWithFrame:CGRectInset(self.bounds, 1.0, 1.0)]; 
     self.label.numberOfLines = 0; 
     self.label.layer.shouldRasterize = true; 
     [self addSubview:self.label]; 
    } 
    return self; 
} 

按照要求

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { 
    NSLog(@"indexPathSection: %i in row: %i", indexPath.section, indexPath.row); 
    MyCVCell *cell = (MyCVCell*)[collectionView dequeueReusableCellWithReuseIdentifier:@"cell" forIndexPath:indexPath]; 

    NSString *str = [NSString stringWithFormat:@"%@", [[self.cData objectAtIndex:indexPath.section] objectAtIndex:indexPath.row]]; 
    cell.label.text = str; 

    return cell; 
} 

所有看起來很好,直到我滾動。任何想法可能是什麼原因?

滾動 views rendered right 向下滾動 scrolling down 之前向上滾動 scrolling back up

+0

請從'cellForItemAtIndexPath'發佈您的代碼。 –

+0

@ 0x7fffffff將其添加到問題 – peko

+0

嘗試添加您的子視圖到單元格contentView而不是直接到單元格? – wattson12

回答

1

的問題是,在細胞子視圖沒有調整。最簡單的解決方案(至少對於UILabels)是將autoresizingmask設置爲:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight。

+0

啊謝謝pekoe。我希望你有一個自動佈局的答案,但無論如何很高興看到你解決了。 – darbid

相關問題