我想将反射添加到集合视图的单元格中。我有一个创建反射的方法,但我不知道创建快照的正确时间。
我曾尝试在集合视图的-viewWillAppear:中执行此操作,但单元格的contentView的子视图具有零大小的框架。我也尝试过在单元格的-layoutSubviews期间拍摄快照,但子视图帧仍然为0。
单元格的布局设置在什么位置,以便我可以拍摄快照?
应在将单元格添加到集合视图后、和在单元格由集合视图数据源出列后拍摄快照。这样可以确保快照是最新的,在正确的时刻包含单元格的内容视图(当它即将添加到集合视图时,以及在它刚刚出列之后):
CollectionViewCell.m
- (void)didMoveToSuperview {
[self updateSnapshotImage];
}
CollectionViewController.m
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath;
{
CollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"cellID" forIndexPath:indexPath];
[cell updateSnapshotImage];
return cell;
}