2016-04-10 4 views
0

Ich erstelle eine Kamera-App. Ich zeige aufgenommene Bilder in der Sammelansicht. Ich habe einen Knopf platziert, um das bestimmte Bild zu löschen. Während des Laufens kann ich die zu löschende Schaltfläche sehen, aber wenn ich auf die Schaltfläche klicke, wird keine Aktion ausgeführt.Button-Klick-Methode funktioniert nicht in der Sammlungsansicht

-(UICollectionViewCell *)collectionView:(UICollectionView *) 
collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath 
{ 
    CollectionViewCell *Cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"Cell" forIndexPath:indexPath]; 

    Cell.self.image_View.image=[self.imageArray objectAtIndex:indexPath.row]; 

    UIButton *deleteButton = [[UIButton alloc]init]; 
    deleteButton.frame = CGRectMake(80, 0, 20, 20); 
    //deleteButton.backgroundColor = [UIColor redColor]; 
    [deleteButton setImage:[UIImage imageNamed:@"delete.png"] forState:UIControlStateNormal]; 
    [deleteButton setTag:indexPath.row]; 

    [deleteButton addTarget:self action:@selector(delete:) forControlEvents:UIControlEventTouchUpInside]; 

    [Cell.self.image_View addSubview:deleteButton]; 

    return Cell; 
} 

-(void) delete:(UIButton*)sender{ 
     UIButton *btn = (UIButton *)sender; 
     [self.imageArray removeObjectAtIndex:btn.tag]; 
     //reload your collectionview here 
} 

Kann mir jemand helfen?

+1

fehlt Warum Sie Taste auf der UIImageView löschen hinzufügen? Fügen Sie es der Zelle hinzu. Versuchen Sie auch, die Schaltfläche wie UIButton * deleteButton = [UIButton buttonWithType: UIButtonTypeRoundedRect]; oder UIButton * deleteButton = [UIButton buttonWithType: UIButtonTypeCustom]; –

+0

Dank Arun Gupta, es hat funktioniert, ich füge einfach meine Taste zu meiner Zelle – user6183984

Antwort

-1

Ich glaube, Sie könnten

[collectionView reloadData] 


    -(void) delete:(UIButton*)sender{ 
    UIButton *btn = (UIButton *)sender; 
    [self.imageArray removeObjectAtIndex:btn.tag]; 
    [collectionView reloadData] 

} 
+0

Dank Iman, ich weiß, dass ich die collectionview neu laden will. Wenn ich einen Bruchpunkt in der Methode löschen, geht es nicht unter dieser Methode. Ich weiß es nicht Warum – user6183984

+0

ah ok, sollte die Methode so sein (IBAction) löschen: (UIButton *) Absender anstelle von void – Iman

+0

Iman, wenn ich IBAction verwende, sollte diese Schaltfläche im Storyboard rechts erstellt werden, ich habe die Schaltfläche nur programmgesteuert erstellt – user6183984

Verwandte Themen