2016-04-11 3 views
0

Also auf meiner Hauptansicht habe ich eine UITableView. In dieser Ansicht, mit einer Schaltfläche, kann ich ein Objekt hinzufügen, das ich genannt habe: SelectPostIt (die aus meiner Feder kommen SelectPostIt.xib).Wie fügt man ein Objekt in einer UITableView per Drag & Drop hinzu?

Diese Post It sind ziehbar und ich bin auch in der Lage, die Koordinate des Punktes zu kennen, von dem ich das PostIt abgelegt habe (ich dachte es könnte nützlich sein) (Entschuldigung für mein Schulglisch).

Was ich tun möchte, ist, wenn ich meine PostIt in einer Reihe von meinem UITableView fallen lassen, wird es in dieser Zeile hinzufügen und dann wird es mit der Zeile beim Scrollen der UITableView verschieben.

Hier ist, wie ich ein PostIt auf meiner Ansicht hinzufügen:

- (IBAction)addNewPostIt:(id)sender {  

SelectPostIt *selectpostit = [[[NSBundle mainBundle] loadNibNamed:@"SelectPostIt" owner:self options:nil] firstObject]; 
selectpostit.frame = CGRectMake(x, y, 100, 100); 

[self.view addSubview:selectpostit]; 

selectpostit.edited = false; 
selectpostit.commentaireSP.editable = NO; 
selectpostit.commentaireSP.scrollEnabled = YES; 
selectpostit.layer.borderWidth = 1.0f;  
selectpostit.commentaireSP.userInteractionEnabled = NO; 

x+=1; 
y+=1;} 

Und hier ist, wie ich die Koordinaten des Tropfens erhalten:

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

//That's here 
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];} 

Ich weiß nicht, wie zu verarbeiten, jede mögliche Hilfe wird willkommen sein!

Antwort

1

Wenn ich richtig verstehe, möchten Sie den visuellen Status einer Ihrer TableView-Zellen ändern, wenn der Benutzer "&" die "PostIt" Ansicht auf die Zelle ablegt.

Ich würde empfehlen, dies zu lösen mit einer Art von Modell-Klasse, die den Inhalt jeder Zelle darstellt. Beispielsweise können Sie eine showsPostIt-Eigenschaft haben und wenn der Benutzer das PostIt auf einer Zelle löscht, legen Sie den Wert dieser Eigenschaft für diese Zelle auf YES fest. Dann können Sie einfach -reloadData oder ähnliches anrufen, um Ihre Ansicht visuell zu aktualisieren.

Wenn Sie es nicht tun und nur -addSubview eine PostIt-Ansicht, haben Sie Probleme, wenn das TableView seine Zellen recycelt (die PostIt-Ansicht verschwindet oder erscheint in den falschen Zellen).

1

Ich denke, dass Sie immer noch das gleiche Problem haben, sollten Sie versuchen, einige Objektklassen zu erstellen, die alles darstellen, was Sie dargestellt werden müssen. Von hier aus können Sie die Daten Ihres Objekts aufnehmen und direkt in der Ansicht ein neues Konstrukt erstellen. Aber Sie müssen jetzt alles, was Sie getan haben visuell in Ihrem Code aktualisieren.

Verwandte Themen