iPhone: la sostituzione di vista di una cella con UITextField

voti
0

Sto fondamentalmente cercando di aggiungere un UITextField ad un UITableViewCell su tableView: commitEditingStyle: forRowAtIndexPath :. Su inserto, voglio aggiungere un UITextField sulla cella esistente.

I ha installato il textField con qualcosa di simile:

-(void) setUpIndexField {
    inputField = [[UITextField alloc] init];
    inputField.textAlignment = UITextAlignmentCenter;
    inputField.borderStyle = UITextBorderStyleRoundedRect;    
    inputField.keyboardType = UIKeyboardTypeNamePhonePad;
    inputField.delegate = self;
 }

Poi, nel commitEditingStyle, ho qualcosa come ad esempio:

- (void)tableView:(UITableView *)tv
    commitEditingStyle:(UITableViewCellEditingStyle)editingStyle 
    forRowAtIndexPath:(NSIndexPath *)indexPath 
{
    NSInteger row = [indexPath row];
    if (editingStyle == UITableViewCellEditingStyleInsert) {
    if (row == 0) {
        UITableViewCell *cell = [tv cellForRowAtIndexPath:indexPath];
        inputField.frame = [tv cellForRowAtIndexPath:indexPath].frame;
        [cell.contentView addSubview:inputField];
        [inputField becomeFirstResponder];
        return;
    }
// more code etc.
}

Quando scatto sopra la funzione di accesso Inserisci (+), il textField effettivamente ottenere lasciò sullo schermo, ma non è affatto la cella che sta clic su di esso. Si spegne in una parte casuale del UIView, non il cellulare effettivo per l'indexPath dove è stato cliccato il +.

Insight su dove ho sbagliato e come posso mettere l'UITextField sulla cella in cui l'+ è stato cliccato sarebbe l'ideale.

È pubblicato 23/02/2009 alle 22:42
fonte dall'utente
In altre lingue...                            


1 risposte

voti
1

Si sta impostando la cornice inputFieldal telaio della cella che non fare quello che vuoi. Viste all'interno della cellula usa il superiore sinistro del telaio come 0,0. La cornice campo di testo dovrebbe essere:

inputField.frame = CGRectMake(0, 0, cell.frame.size.width, cell.frame.size.height);

Dal momento che è relativo ad esso superview che posizionerà il campo di testo in modo che copra completamente le altre viste in quella cella.

Risposto il 23/02/2009 a 22:50
fonte dall'utente

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more