UICollectionViewCell
当视图以这样的方法加载时,我正在创建一些's:
- (void)cachePageCells
{
if(!_cellCache)
_cellCache = [NSMutableArray arrayWithCapacity:[self collectionView:self.collectionView numberOfItemsInSection:0]];
[pages enumerateObjectsWithOptions:0 usingBlock:^(MMGPage *obj, NSUInteger idx, BOOL *stop) {
NSIndexPath *indexPath = [NSIndexPath indexPathForItem:idx inSection:0];
MMGCell *cell = [self.collectionView dequeueReusableCellWithReuseIdentifier:kCELL forIndexPath:indexPath];
UIView *view = obj.view;
[cell.contentView addSubview:pageview];
[_cellCache addObject:cell];
}];
}
这将创建cell
原点为 (0, -10) 的 a,在调试器中打印出该对象显示如下:
(lldb) po cell
<MMGIssuePageCell: 0x156f4df0; baseClass = UICollectionViewCell; frame = (0 -10; 768 1024); clipsToBounds = YES; opaque = NO; layer = <CALayer: 0x156f4e80>>
如果在-collectionView:cellForItemAtIndexPath:
方法中使用相同的代码,它会创建一个正确原点为 (0, 0) 的单元格。
如果我通过重置框架来纠正偏移量,请使用以下内容:
cell.frame = CGRectMake(0, 0, cell.frame.size.width, cell.frame.size.height);
它破坏了集合视图并且单元格跳来跳去。
顺便说一下,bounds
单元格的 是 (0 0; 768 1024)。
这是在ios7下的 iPad 上运行的。