iPhone: remplacer la vue d'une cellule avec UITextField

voix
0

Je suis fondamentalement d'essayer d'ajouter un UITextField à un UITableViewCell sur tableView: commitEditingStyle: forRowAtIndexPath :. Sur insert, je veux ajouter un UITextField sur la cellule existante.

Je configurer le textField avec quelque chose comme ceci:

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

Puis, en commitEditingStyle, j'ai quelque chose comme:

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

Lorsque je clique sur l'accesseur Insérer (+), le champ de texte ne se laissa tomber en effet sur l'écran, mais pas près de la cellule qui est cliquant dessus. Il en va dans une partie aléatoire de la UIView, pas la cellule réelle pour le indexPath à où le + a été cliqué.

Aperçu de l'endroit où je suis allé mal et comment je peux placer le UITextField sur la cellule où le + a été cliqué serait idéal.

Créé 23/02/2009 à 22:42
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
1

Vous définissez le cadre de inputFieldla structure de la cellule qui ne fera pas ce que vous voulez. Vues intérieur de la cellule utilisent la partie supérieure gauche du cadre comme 0,0. Votre cadre textfield doit être:

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

Depuis ce qui est relatif à ce superview qui placera le champ de texte de sorte qu'il recouvre complètement les autres vues dans cette cellule.

Créé 23/02/2009 à 22:50
source utilisateur

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