2016-05-16 4 views
2

Ich habe Sammlung Ansicht mit horisontal Fluss, Zellen sind heigh als sceen und Breite Bildschirm/4iOS SWIFT - Collection bestimmte Zelle über Touch erweitert

So möchte ich so etwas wie ein animiertes Übergang so hinzuzufügen, wenn Sie zu erweitern versuchen die Zelle mit zwei Fingern diese Zelle wird ihre Breite erweitern, bis die Finger die Seiten des Geräts erreichen, und auch einige andere Dinge werden animiert, während die Finger sich bewegen.

Also, wie kann ich verfolgen die Finger moove Func in meinem vc mit Sammlung anzeigen aufrufen und Größen von Komponenten und einer Zelle zu betreiben. Auch die Erweiterung einer bestimmten Zellenbreite in cv, so dass andere Zellen sich wegbewegen, ist ein kleiner Trick für mich.

Vielen Dank für jede Hilfe))

Antwort

0

Ich würde dies als Kommentar hinzufügen geliebt habe, aber ich brauche 50 Ruf es so zu tun, mit den unten Stimmen gnädig sein: P

Sie müssen UIViewControllerAnimatedTransitioning verwenden , UIViewControllerTransitioningDelegate und UIPercentDrivenInteractiveTransition.

Sie machen einen animierten Übergang, der die UICollectionViewCell des Rahmens in Bezug auf die Viewcontroller verwendet, so müssen Sie die convertRect Verfahren in Bezug auf die ViewController.view

Der animierte Übergang einen Screenshot des NewViewController hinzufügen verwenden sollten mit das Ergebnis der Methode convertRect als Startframe. Dann wird die Animation vom Startrahmen bis zum letzten Frame des NewViewControllers ausgeführt.

Testen Sie die Animation und prüfen Sie, ob sie das gewünschte Ergebnis hat. Dann implementieren Sie die UIPercentDrivenInteractiveTransition und binden Sie es an eine UIPinchGestureRecognizer. Ich würde vorschlagen, die Pinch-Geste zu jeder Zelle hinzuzufügen und dann einen Delegaten für die Zelle zu erstellen, und legen Sie die UIPercentDrivenInteractiveTransition als Delegat für es, die eine Funktion implementiert func userDidUsePinchGesture(gesture: UIPinchGestureRecognizer). In dieser Funktion können Sie den Prozentsatz des Abschlusses des Übergangs berechnen.

Es tut mir leid, wenn diese Wand des Textes ein wenig einschüchternd ist, und ich hoffe, dass dir das hilft. Wenn Sie nicht UIViewControllerAnimatedTransitioning, UIViewControllerTransitioningDelegate umgesetzt und UIPercentDrivenInteractiveTransition bevor ich vorschlagen, dass Sie dieses Tutorial überprüfen Creating Custom UIViewController Transitions

1

Sie die UIPinchGestureRecognizer verwenden können Zoom mit zwei Fingern zu handhaben. Wenn Sie den Zoom-Skalierungswert der Ansicht lesen, können Sie die Höhe und Breite der Zelle ändern und dann die Zelle neu laden.

UIPinchGestureRecognizer *pinchGestureRecognizer = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(handlePinchWithGestureRecognizer:)]; 
[cell addGestureRecognizer:pinchGestureRecognizer]; 

Swift:

var pinchGestureRecognizer: UIPinchGestureRecognizer = UIPinchGestureRecognizer(target: self, action: Selector("handlePinchWithGestureRecognizer:")) 
cell.addGestureRecognizer(pinchGestureRecognizer) 

den Zoom-Wert lesen und Ihre Sachen hier verwandeln schreiben:

-(void)handlePinchWithGestureRecognizer:(UIPinchGestureRecognizer *)pinchGestureRecognizer{ 
    self.cell.transform = CGAffineTransformScale(self.testView.transform, pinchGestureRecognizer.scale, pinchGestureRecognizer.scale); 
} 

Swift:

func handlePinchWithGestureRecognizer(sender: UIPinchGestureRecognizer) 
{ 
    sender.view!.transform = CGAffineTransformScale(sender.view!.transform, 
    sender.scale, sender.scale) 
} 

Sie diese auch beziehen kann: https://developer.apple.com/library/ios/documentation/WindowsViews/Conceptual/UIScrollView_pg/ZoomZoom/ZoomZoom.html

+0

Probieren Sie diese Methode, funktioniert alles gut, aber die einzige Sache fehlt, während Tritching die Finger und Zelle Seite weit von ech anderen gehen könnte, gibt es irgendwelche wat die genaue Position der Finger zu verfolgen und es auf die Seite setzen, so wird es auf allen Geräten genauer sein?Ich kann alle Berechnungen oder andere Sachen tun, ich brauche nur etwas wie die Fingerposition des Senders auf dem Bildschirm. Wie auch immer, vielen Dank für Hilfe))) –

Verwandte Themen