2016-11-03 5 views
0

Ich habe eine JSON UICollectionView Abschnitt meiner App. Meine ursprüngliche Idee für den Code hat sich geändert und jetzt möchte ich einfach, dass das ausgewählte Bild im Vollbildmodus als "Lightbox" -Style-Effekt mit voller Zoom-Gestensteuerung erscheint.Vollbildansicht auf dem Bildschirm über UICollectionView

Ich habe Probleme, Code durch Gesten oder andere Methoden für meine Collection-Ansicht zu arbeiten.

Hier ist ein Ausschnitt aus der Ansicht Generation:

-(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; 
} 

Wie kann ich einfach eine Vollbildansicht des Bildes geklopft? Ich kann es in einem neuen View-Controller bekommen, aber alles, was ich einfach brauche, ist ein "Lightbox" -Stileffekt, bei dem das Bild zum Hauptbildschirm animiert wird und es im Seitenverhältnis ausfüllt?

Der folgende Code zeigt einen Teil davon, wie ich auf die Elemente klicken kann, um einen einfachen View-Controller zu generieren. Aber ich brauche es auf dem gleichen Bildschirm, einfach überlagert im Vollbildmodus:

- (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]]; 

    } 
} 

Wer hat irgendwelche Ideen?

Antwort

0

zu implementieren Wenn Sie mit Animation ausgewählte Bild durchsuchen möchten Sie diesen Code das ist es JTSImageViewController

Bibliotheksklassen hinzufügen und tun können.

// 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]; 

Ich hoffe, es hilft Ihnen.

+0

Danke, aber wie verbinde ich sie miteinander? – user6934446

+0

Sie können Gesten auf UIImageView hinzufügen und beim Klicken auf diese Bildansicht können Sie diesen Code schreiben. aber dieser code wurde von viewcontroller aufgerufen, also schlage ich vor, dass Sie eine delegate-methode machen und diese mit diesem code aufrufen. –

Verwandte Themen