iPhone: înlocuirea unei celule de vedere cu UITextField

voturi
0

Sunt practic încercarea de a adăuga un UITextField la un UITableViewCell asupra tableView: commitEditingStyle: forRowAtIndexPath :. Pe Inserare, vreau să adăugați un UITextField peste celula existentă.

Am setup textfield cu ceva de genul:

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

Apoi, în commitEditingStyle, am ceva, cum ar fi:

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

Când fac clic pe accessor Insert (+), câmpul text se ajunge într-adevăr, se trânti pe ecran, dar nu în cazul în care în apropierea celulei, care-l clic. Se stinge într-o parte aleatorie a UIView, nu celula real pentru indexPath în cazul în care a fost făcut clic pe +.

Insight pe unde am mers greșit și cum pot plasa UITextField pe celula în care a făcut clic pe + ar fi ideal.

Întrebat 23/02/2009 la 22:42
sursa de către utilizator
În alte limbi...                            


1 răspunsuri

voturi
1

Setați cadrul inputFieldla cadrul celulei , care nu va face ceea ce vrei. Vizite din interiorul celulei folosesc partea stanga sus a cadrului ca 0,0. Rama dvs. textfield ar trebui să fie:

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

Deoarece, care este relativ la ea Superview, care va plasa câmpul text astfel încât să-l acopere complet în sus celelalte vizualizări în acea celulă.

Publicat 23/02/2009 la 22:50
sursa de către utilizator

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