我遇到了一個奇怪的問題:我已經將UICollectionViewCell與UIImageView作爲子對象。這個單元格不繪製(收集視圖看起來很清晰),但它捕捉到了觸動。此外,子UI UIImageView在Interface Builder中看起來可見。如果我重寫單元格的「drawRect:」方法,它會繪製我的自定義繪圖代碼。UICollectionViewCell不繪製子視圖
UIImageView不繪製的原因是什麼?我測試了在iOS 6和7
以下代碼:
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
MyCollectionViewCell* cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"MyCell" forIndexPath:indexPath];
NSAssert (cell != nil, @"MyCollectionViewCell init failed"); // all right here
cell.iconImageView.image = [UIImage imageNamed:@"SomeImage"]; // this line doesn't matter
return cell;
}
...
@implementation LookCollectionViewCell
-(void) drawRect:(CGRect)rect
{
[super drawRect: rect];
[[UIColor colorWithRed: 1 green: 0 blue: 0 alpha:1] setFill];
UIRectFill(CGRectInset(rect, 10, 10)); // draws red rect on black background
}
@end
更新:
如果我通過在代碼初始化集合觀察室 'initWithFrame:方法',添加 '的UIImageView' 手動,一切正常。所以,問題是Interface Builder中的collection view cell不起作用。