2011-01-15 3 views
0

Ich versuche, in jeder Zeile der Zelle Etikett einzufügen. Anzeige der Ganzzahl und ich versuche, die Menge zu erhöhen, wenn Benutzer klicken auf Schaltfläche hinzufügen oder minus Ich kann Schaltfläche in UITableView Cell sowie die Funktion zum Ändern des Werts einfügen. Aber wenn ich auf die Schaltfläche Hinzufügen klicke, ändert sich der Wert nur für die letzte Zeile und nicht für die bestimmte Zeile.Enthalten mehrere Etiketten und ändern Sie den Wert der gleichen in Iphone, Objective C

// MY-Etikett in jeder Zelle

txtQty = [[UILabel alloc] initWithFrame:CGRectMake(233,7,20,20)]; 

txtQty.text = [NSString stringWithFormat:@"%@",[nos objectAtIndex:indexPath.row]]; 

txtQty.tag = count; 

txtQty.textColor =[UIColor whiteColor]; 

txtQty.backgroundColor = [UIColor clearColor]; 

[cell.contentView addSubview:txtQty]; 


//Button Creation 

UIButton *button2 = [[UIButton alloc] initWithFrame:CGRectMake(180,5,30,30)]; 

[button2 addTarget:self action:@selector(subAddSubQty:) forControlEvents:UIControlEventTouchUpInside]; 

[button2 setTag:count]; 

[cell.contentView addSubview:button2]; 

jetzt einfügen, was es ist wohl geschieht, sind drei Zeilen in der Tabelle und ich auf der ersten Zeile hinzufügen Taste der Wert bekommt Änderung des letzten Etiketts dh in der 3. Reihe und nicht von der 1. Reihe Wie löst man diese ?? bitte helfen Danke

Antwort

1

Warum legen Sie ein Etikett in eine UITableViewCell? Es hat eine textLabel -Eigenschaft:

cell.textLabel.text = @"SomeText"; 

Das gesagt, was Sie tun möchten, ist nicht sehr schwierig. Ich würde NSMutableArray Instanzvariable voller int s verwenden. Sie können das Array initialisieren eine for loop

array = [[NSMutableArray alloc] init]; 
for (int i = 0; i < someValue; i++) { 
    [array addObject:[NSNumber numberWithInt:someInt]]; 
} 

in tableView:cellForRowAtIndexPath: verwenden Sie verwenden:

cell.textLabel.text = [[array objectAtIndex:[indexPath row]] stringValue]; 

Und in Ihre Schaltfläche Methoden erhöhen Sie wie folgt:

-(void)increase:(id)sender { 
    int correctIndex = sender.tag 
    int old = [[array objectAtIndex:correctIndex] intValue]; 
    [array replaceObjectAtIndex:correctIndex withObject:[NSNumber numberWithInt:old + 1]]; 
} 

Sie können die correctIndex erhalten mit Stichworte. Wenn Sie auf eine Schaltfläche in tableView:cellForRowAtIndexPath: initialisieren können Sie einen Tag gesetzt:

button.tag = [indexPath row]; 
+0

Ich versuche Label Ursache hinzufügen ich bereits Text mit dem cell.textLabel.text Zugabe m. verursachen Sie wie Einkaufswagen, wo Sie den Einzelteilnamen sehen und davor die Quantität, um sie zu erhöhen oder zu verringern. Wenn ich versuche, die Menge neben dem Namen hinzuzufügen, sieht sein nicht in der Linie aus oder richtet so aus, dass ich Textbeschriftung verwende, damit es die Quantität bei genauem gegebenem Rahmen zeigt – user576569

+0

aber Sie können die anderen Sachen verwenden, die ich sagte? – fabian789

+0

ja ich benutze es. Ich benutze Tag, aber was geschieht, wenn ich auf Hinzufügen klicke, wird der Wert nur beim letzten Etikett in der Tabelle erhöht. Angenommen, ich habe 3 Zeilen in der Tabelle, wenn ich auf die Schaltfläche zum Hinzufügen der ersten Zeile klicke, und dann in der Methode, um die Menge zu erhöhen, nach dem Absender-Tag zu suchen. aber dann, wenn ich schreibe als label.text = label.text intvalue +1 sein steigender Wert von nur dem letzten Label in Zeile, weil der Name für jedes Label gleich bleibt – user576569

Verwandte Themen