2016-04-12 18 views
0

Ich würde gerne wissen, ob es keine Methode gibt, die es mir erlauben wird, einen Touch/Klick/Druck (rufen Sie wie Sie wollen) auf iOS zu simulieren. Ich weiß nicht, ob ich etwas hinzufügen muss ... Außer, dass ich mit Objective-c codiere.Wie man eine Berührung auf iOS simuliert

Jede Hilfe wird geschätzt, danke im Voraus!

EDIT: Hier ist die Methode, die ich erlauben, die Koordinaten des Falles zu haben, die ich ausgewählt habe (es mir im Protokoll zeigen):

- (void)collectionViewTableLayoutManager:(DRCollectionViewTableLayoutManager *)manager collectionView:(UICollectionView *)collectionView didSelectCellAtRow:(NSUInteger)row column:(NSUInteger)column indexPath:(NSIndexPath *)indexPath 
{ 
    NSLog(@"SELECTED: %ld.%ld/%ld.%ld", (long)indexPath.section, (long)indexPath.row, (long)row, (long)column); 
} 

Hier ist meine Methode, die den Dragndrop Griff von meinem PostIt (siehe in den Kommentaren für mehr Infos):

-(IBAction)handlePan:(UIPanGestureRecognizer *)recognizer{ 
CGPoint translation = [recognizer translationInView:self]; 
recognizer.view.center = CGPointMake(recognizer.view.center.x + translation.x, recognizer.view.center.y + translation.y); 

//Here to know the coordinates of the drop 
if(recognizer.state == UIGestureRecognizerStateEnded){   
    CGPoint centerPointOfView = [recognizer locationInView:self.superview]; 
    NSLog(@"X - %f, Y - %f",centerPointOfView.x,centerPointOfView.y); 
} 

[recognizer setTranslation:CGPointMake(0, 0) inView:self]; 
} 
+0

, was Sie genau tun wollen? –

+1

Also, ich habe ein Objekt (ein PostIt genau, das von meiner nib SelectPostIt.xib kommt). Dieser ist ziehbar. Dann habe ich eine Sammlungsansicht mit mehreren Fällen. Wenn ich einen dieser Fälle auswähle, geben sie mir die Koordinaten dieses Falles zurück (mit denen ich den betreffenden Fall identifizieren kann). Ich bin auch in der Lage, die letzten Koordinaten meines PostIt zu haben, wenn ich DragN Drop (in der Tat die Koordinaten des Drop). Was ich machen möchte, ist, wenn ich ein PostIt in einem Fall ablege, wird es einen Klick mit den Koordinaten des Abfalls simulieren und mir zeigen, in welchem ​​Fall ich das PostIt fallen gelassen habe. – Kokodelo

+0

also möchten Sie Methode auf Klick aufrufen? –

Antwort

0

Also hier ist, wie ich mein Problem gelöst habe. Zu Beginn war die Methode, die das postIt's dragNdrop behandelt, in der PostIt.m. Also habe ich es in meine viewController.m verschoben. Jetzt kann ich mit dieser Methode die CollectionView meines viewControllers aufrufen und einen Klick "simulieren".

Hier ist, wie meine neue Methode wie folgt aussieht:

-(IBAction)handlePan:(UIPanGestureRecognizer *)recognizer{ 
CGPoint translation = [recognizer translationInView:self.view]; 
recognizer.view.center = CGPointMake(recognizer.view.center.x + translation.x, recognizer.view.center.y + translation.y); 

//the coordinates of the drop 
if(recognizer.state == UIGestureRecognizerStateEnded){ 
    CGPoint centerPointOfView = [recognizer locationInView:self.view]; 
    NSLog(@"X - %f, Y - %f",centerPointOfView.x,centerPointOfView.y); 

    //Here is how I pick up the cell where the post it has been dropped 
    [_collectionView cellForItemAtIndexPath:[_collectionView indexPathForItemAtPoint:centerPointOfView]]; 

    NSIndexPath *indexPath =[_collectionView indexPathForItemAtPoint:centerPointOfView]; 

//some log tests 
    NSLog(@"SELECTED: %ld.%ld ", (long)indexPath.section, (long)indexPath.row); 
} 


[recognizer setTranslation:CGPointMake(0, 0) inView:self.view]; 
}