2014-05-08 66 views
2

我有一個水平滾動的集合視圖。我需要從集合視圖的當前可見部分創建一個UIImageView。從UICollectionView可視區域創建UIImage

我通常使用下面的方法是:

+ (UIImageView *) imageCopyOfView:(UIView *)inputView 
{ 
    UIGraphicsBeginImageContext(inputView.bounds.size); 
    [inputView.layer renderInContext:UIGraphicsGetCurrentContext()]; 
    UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 
    UIImageView *retView = [[UIImageView alloc] initWithImage:viewImage]; 
    return retView; 
} 

,但它確實具有收藏查看已滾動之後,因爲它似乎變得已經滾動到視圖的一部分不行屏幕

回答

1

而不是

[inputView.layer renderInContext:UIGraphicsGetCurrentContext()]; 

你應該使用

[inputView drawViewHierarchyInRect:inputView.frame afterScreenUpdates:YES]; 
+0

嗯,它是不同的,但不完全是它。但我正在使用捕獲的圖像的動畫,可能會把它搞亂。繼續看看它。這可能已經得到它,但我可以有其他的東西導致問題。謝謝回覆。我會繼續努力。 – RegularExpression

+1

經過一番修補之後,我發現問題與我調用它的方法中的框架有關。您的解決方案正是我所需要的。謝謝。 – RegularExpression