2010-11-08 13 views
10

Ich weiß, dass dies eine wirklich einfache Frage sein muss, aber ich habe Probleme, es an einem einfachen Ort zu finden, an dem nicht so viele andere Dinge passieren, dass ich das spezifische Verhalten isolieren kann.In-Place-Bearbeitung von Text in UITableViewCell?

Ich weiß, ich muss ein UITextField als Unteransicht der UITableViewCell hinzufügen, um es bearbeitbar zu machen. Was ist der beste Weg, dies zu tun? (Ich sehe ein Beispiel in UICatalog, aber ich bin verwirrt mit all den zusätzlichen Dingen, die es mit dem Wörterbuch macht.)

Bitte entschuldigen Sie die Ignoranz dieser Frage. Ein Zeiger auf Beispielcode oder ein Screencast würde sehr geschätzt werden.

Vielen Dank im Voraus,

Alan

Antwort

1

Sie können Ihre benutzerdefinierten UITableViewCell erstellen und setzen, was Sie in es wollen. Dann müssen Sie es einfach in Ihrem UITableView verwenden. Wenn Sie besorgt sind, was als UITextField-Delegat für Ihr Textfeld zu verwenden, um alle Delegate-Methoden zu verwalten, IMHO Ich werde es in den UIViewController, die UITableView behandeln, so dass Sie die DataSource aktualisieren können, sobald das Textfeld bearbeitet wurde .

4

Zuerst definieren Sie etwa UITextField.

txtField=[[UITextField alloc]initWithFrame:CGRectMake(5, 5, 320, 39)]; 
txtField.autoresizingMask=UIViewAutoresizingFlexibleHeight; 
txtField.autoresizesSubviews=YES; 
txtField.layer.cornerRadius=10.0; 
[txtField setBorderStyle:UITextBorderStyleRoundedRect]; 
[txtField setPlaceholder:@"Type Data Here"]; 

Dann schreiben Sie den Code unten in cellForRowAtIndexPath Methode

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString *CellIdentifier = @"CellIdentifier"; 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
    if (cell == nil) 
    { 
     cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease]; 
     cell.accessoryType = UITableViewCellAccessoryNone; 
    } 
    [cell addSubview:txtField]; 
    return cell; 
} 
+4

Sollte der Subview nicht innerhalb der if-Anweisung hinzugefügt werden, so kann es einen Teil der Ausreihen von Zellen sein? –

Verwandte Themen