Je suis en train d'essayer d'ajouter un UITextField à un UITableViewCell sur tableView: commitEditingStyle: forRowAtIndexPath :. Sur insertion, je veux ajouter un UITextField sur la cellule existante.iPhone: remplacement de la vue d'une cellule avec UITextField
-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 textField ne se retrouve en effet sur l'écran, mais pas près de la cellule qui clique dessus. Il va dans une partie aléatoire de l'UIView, pas la cellule réelle pour l'indexPath à l'endroit où le + a été cliqué.
Un aperçu sur où je me suis trompé et comment je peux placer le UITextField sur la cellule où le clic a été fait serait idéal.
Salut Squeegy, c'est presque ça. Le seul autre problème est maintenant la largeur de la cellule est 320, de sorte qu'il s'étend après la cellule lorsque le style est arrondi pour UITableView. Y at-il de toute façon à rester dans les limites de UITableViewCell et ne pas continuer après? – Coocoo4Cocoa
sûr. Rendez la largeur et la hauteur plus courtes et augmentez légèrement l'origine x et y. Juste ajuster les valeurs jusqu'à ce que ça colle bien. –