2010-11-08 11 views
10

Wiem, że to naprawdę proste pytanie, ale mam problem ze znalezieniem go w prostym miejscu, gdzie nie dzieje się tak wiele innych rzeczy, że mogę wyizolować konkretne zachowanie.Edytowanie tekstu w miejscu na UITableViewCell w miejscu?

Wiem, że muszę dodać UITextField jako subview do UITableViewCell, aby można było edytować. Jaki jest najlepszy sposób na zrobienie tego? (Widzę przykład w UICatalog, ale jestem zdezorientowany wszystkimi dodatkowymi rzeczami, które robi ze Słownikiem.)

Jeszcze raz, proszę wybaczyć ignorancję tego pytania. Wskazany byłby wskaźnik do przykładowego kodu lub screencastu.

Dzięki z góry,

Alan

Odpowiedz

1

można stworzyć swój zwyczaj UITableViewCell i umieścić cokolwiek chcesz w nim. Następnie wystarczy użyć go w swoim UITableView. Jeśli martwisz się, co użyć jako delegowania UITextField do swojego pola tekstowego do zarządzania wszystkimi metodami delegatów, IMHO umieści go w UIViewController, który obsługuje UITableView, aby można było zaktualizować DataSource po edycji pola tekstowego .

4

Najpierw zdefiniuj około 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"]; 

Następnie wpisz kod poniżej cellForRowAtIndexPath metody

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

nie Jeżeli subview być dodawane w if więc może być częścią zdejmującą z kolejki komórek? –