我想複製完全相同的didSelect動畫/賽格當你點擊iPhone的照片應用程序(或在幾乎所有其他應用程序中)的照片照片放大的細胞本身變成一個模態視圖控制器,並在被解散時最小化到網格所屬的任何位置。UICollectionView挖掘動畫像iPhone的照片應用程序
我試過Google搜索,但找不到任何關於此的文章。
我想複製完全相同的didSelect動畫/賽格當你點擊iPhone的照片應用程序(或在幾乎所有其他應用程序中)的照片照片放大的細胞本身變成一個模態視圖控制器,並在被解散時最小化到網格所屬的任何位置。UICollectionView挖掘動畫像iPhone的照片應用程序
我試過Google搜索,但找不到任何關於此的文章。
在git上有很多公開回購可能可以做你想做的。有些東西,我發現:
https://github.com/mariohahn/MHVideoPhotoGallery
https://github.com/mwaterfall/MWPhotoBrowser
那些可能過於複雜。另一種選擇是在與單元格相同的位置創建UIImageView,然後將其動畫化以填充屏幕。這段代碼假設collectionView在(0,0)處有一個原點,如果不是,那麼在計算初始幀時只需添加collectionView的偏移量。
collectionView.scrollEnabled = false; // disable scrolling so view won't move
CGPoint innerOffset = collectionView.contentOffset; // offset of content view due to scrolling
UICollectionViewLayoutAttributes *attributes = [collectionView layoutAttributesForItemAtIndexPath:[NSIndexPath indexPathForItem:index inSection:0] ];
CGRect cellRect = attributes.frame; // frame of cell in contentView
UIImageView *v = [[UIImageView alloc] initWithFrame:CGRectMake(cellRect.origin.x - innerOffset.x, cellRect.origin.y - innerOffset.y, cellRect.size.width, cellRect.size.height)];
[self.view addSubview:v]; // or add to whatever view you want
v.image = image; // set your image
v.contentMode = UIViewContentModeScaleAspectFit; // don't get stupid scaling
// animate
[UIView animateWithDuration:0.5 animations:^{
[v setFrame:[[UIScreen mainScreen] bounds]]; // assume filling the whole screen
}];
這不是很好的彈出動畫,但它應該仍然看起來不錯。
你的意思是' cellRect.origin.x - innerOffset.x'而不是'cellRect.origin.x + innerOffset.x'? (與y相同)。 –
@PavloRazumovkyi感謝您指出,固定 – Bourne
[這可能會幫助你](https://github.com/mariohahn/MHVideoPhotoGallery)。它有很多功能的例子。爲了使這項工作,你需要使用過渡和動畫類。 – Dima
[This](http://stackoverflow.com/questions/12481004/how-to-animate-a-uiimageview-to-display-fullscreen-by-tapping-on-it)可能會回答你的問題 –