1

Ich brauche etwas Hilfe. Heute arbeite ich an benutzerdefinierten Tabellenansicht, wo die Zelle eine UIImageView enthält. Auf dem ImageView möchte ich die lange Geste implementieren. Ich implementiere Code dafür, der unten angegeben wird .. Aber ich mache etwas falsch in meinem Code.In dieser Ansicht wird die Größe einmal auf lange drücken, aber ich möchte nach einigen Sekunden kann es entfernt werden und wieder in der Tabellenansicht Zelle kommen Kann mir jemand vorschlagen ????Lange drücken Geste auf Bild in Tabelle benutzerdefinierte Zelle

Update:

long gesture Image

Hier ist der Code!

- (void)celllongpressed:(UILongPressGestureRecognizer *)gesture 
{ 

if (gesture.state == UIGestureRecognizerStateBegan) 
{ 
    cell = (ActivityFeedCell *)[gesture view]; 
} 
if (gesture.state == UIGestureRecognizerStateChanged) 
{ 
    cell = (ActivityFeedCell *)[gesture view]; 
    logGes_view=[[UIView alloc]initWithFrame:CGRectMake(5, 0,self.view.frame.size.width-10,self.view.frame.size.height)]; 
    image=[[UIImageView alloc]initWithFrame:CGRectMake(0, 80,self.view.frame.size.width, self.view.frame.size.height-80)]; 
    image.image=cell.updated_imgView.image; 
    UILabel *name_label=[[UILabel alloc]initWithFrame:CGRectMake(10, 15, 150, 30)]; 
    //city_label.backgroundColor=[UIColor yellowColor]; 
    name_label.text=lgGesNamelbl; 
    UILabel *city_label=[[UILabel alloc]initWithFrame:CGRectMake(10, 50, 180, 30)]; 
    //city_label.backgroundColor=[UIColor yellowColor]; 
    city_label.text=lgGesCitylbl; 
    [logGes_view addSubview:city_label]; 
     [logGes_view addSubview:name_label]; 
    [logGes_view addSubview:image]; 
    logGes_view.backgroundColor=[UIColor whiteColor]; 
    [self.view addSubview:logGes_view]; 
} 
if (gesture.state == UIGestureRecognizerStateEnded) 
{ 
    // cell = (ActivityFeedCell *)[gesture view]; 
    [logGes_view removeFromSuperview]; 
} 
} 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
UILongPressGestureRecognizer *gesture1 = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(celllongpressed:)]; 
[gesture1 setDelegate:self]; 
[gesture1 setMinimumPressDuration:1.0]; 
[ cell setUserInteractionEnabled:YES]; 
[cell addGestureRecognizer:gesture1]; 
} 
+0

Zeigen Sie die resultierende Ausgabe und den Code an, den Sie für dasselbe geschrieben haben. –

+0

clipSubviews können auf der CustomCell überprüft werden! Versuchen Sie, das zu deaktivieren, ist entweder cellForRowAtIndexPath() oder im Interface Builder, wenn Prototypzellen verwendet werden! – Ariel

+0

Attache Bilder PLZ –

Antwort

0
[cell addGestureRecognizer:gesture1] 

mit unterhalb der Linie

[ cell.yourimageview setUserInteractionEnabled:YES]; // This enable user interaction on the image view. Required!! 


[cell.yourimageview addGestureRecognizer:gesture1]; //yourimageview is your image outlet 
+0

ich bin schon das versuchen !! –

+0

ist clipViews in der benutzerdefinierten Zelle aktiviert? – Ariel

+0

Fügen Sie Ihren langen Pressecode in Frage. –

1
 UILongPressGestureRecognizer *reconizer=[[UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(handleLongPress:)]; 
        [reconizer setMinimumPressDuration:1.0]; 
       [cell addGestureRecognizer:reconizer]; 


-(void)handleLongPress:(UILongPressGestureRecognizer*)reconizer 
{ 
if (gesture.state == UIGestureRecognizerStateBegan) 
{ 
    UITableViewCell *cell = (UITableViewCell *)[gesture view]; 
    NSIndexPath *indexPath = [tableview indexPathForCell:cell]; 
    NSString *s = [NSString stringWithFormat: @"row=%1ld",(long)indexPath.row]; 
    [self setTitle: s]; 
} 
if (gesture.state == UIGestureRecognizerStateChanged) 
{ 
cell = (UITableViewCell *)[gesture view]; 
    cell.updated_imgView.frame=CGRectMake(0, 0, tableview.frame.size.width, tableview.frame.size.height); 
     } 
if (gesture.state == UIGestureRecognizerStateEnded) 
{ 
cell = (UITableViewCell *)[gesture view]; 
    cell.updated_imgView.frame=CGRectMake(0, 0, 100, 100); 
} 

} es

-(BOOL)canBecomeFirstResponder 
{ 
    return YES; 
} 
+0

haben Sie diesen Code versucht? @simerkaur –

+0

funktioniert es? @ Simerkaur –

+0

Könnten Sie bitte senden Sie die Absturzmeldung? @simerkaur –

0

Versuchen Sie ersetzen: Cell ist superview von Imageview so weiter Größe es ändert nicht Quer Zelle Rahmen fügen Sie es nach der Größenänderung zu mainView hinzu.

+0

jetzt! Meine App ist abgestürzt –

+0

Bitte geben Sie die Ausnahmebedingungsnachricht an – jagdish

+0

Dies tritt auf, wenn eine Klasse nicht auf eine Methode reagiert. vor dem Aufruf überprüfen Sie, ob ([ActivityFeedViewController instancesRespondToSelector: @selector (celllongpressed:)]) { / } – jagdish