我的应用程序的JSON UICollectionView部分。我对代码的最初想法已经改变了,现在我只是希望选择的图像全屏显示为具有全缩放手势控制的“灯箱”样式效果。
我无法通过手势或其他方法为我的集合视图获取任何代码。
以下是视图生成的片段:
-(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
{
return myObject.count;
}
-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView
cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
CustomColumnCell *myCell = [collectionView
dequeueReusableCellWithReuseIdentifier:@"myCell"
forIndexPath:indexPath];
NSDictionary *tmpDict = [myObject objectAtIndex:indexPath.row];
NSURL *url = [NSURL URLWithString:[tmpDict objectForKey:path]];
NSData *data = [NSData dataWithContentsOfURL:url];
UIImage *img = [[UIImage alloc] initWithData:data];
myCell.displayImage.image = img;
myCell.displayDetail.text= [tmpDict objectForKey:name];
return myCell;
}
如何简单地启用点按图像的全屏视图?我可以在一个新的视图控制器中得到它,但我只需要一个'灯箱'风格的效果,其中图像动画到主屏幕并填充它的纵横比?
下面的代码显示了我如何能够点击项目以生成简单的视图控制器。但是我需要在同一个屏幕上显示它,只是全屏覆盖:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"showDetail"]) {
NSIndexPath *IndexPath = [[self.collectionView indexPathsForSelectedItems] objectAtIndex:0];
NSDictionary *tmpDict = [myObject objectAtIndex:IndexPath.row];
[[segue destinationViewController] setImageItem:[tmpDict objectForKey:path]];
[[segue destinationViewController] setDetailItem:[tmpDict objectForKey:name]];
}
}
有人有什么想法吗?
答案 0 :(得分:0)
只需通过这个库,它非常有用且易于实现 https://github.com/jaredsinclair/JTSImageViewController
答案 1 :(得分:0)
如果您想使用动画浏览所选图像,可以使用JTSImageViewController
添加库类并执行此代码。
// Create image info
JTSImageInfo *imageInfo = [[JTSImageInfo alloc] init];
imageInfo.imageURL = [NSURL URLWithString:[[self.attachments objectAtIndex:indexPath.row] valueForKey:@"attach_file"]];
imageInfo.referenceRect = self.frame;
imageInfo.referenceView = self.superview;
// Setup view controller
JTSImageViewController *imageViewer = [[JTSImageViewController alloc]
initWithImageInfo:imageInfo
mode:JTSImageViewControllerMode_Image
backgroundStyle:JTSImageViewControllerBackgroundOption_Blurred];
// Present the view controller.
[imageViewer showFromViewController:self transition:JTSImageViewControllerTransition_FromOriginalPosition];
我希望它可以帮到你。