iPhone: erstatte en celle syn med UITextField

stemmer
0

Jeg er i utgangspunktet prøver å legge til en UITextField til en UITableViewCell på Tableview: commitEditingStyle: forRowAtIndexPath :. På innsats, jeg vil legge til en UITextField over eksisterende celle.

Jeg oppsett tekstfeltet med noe sånt som dette:

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

Deretter i commitEditingStyle, jeg har noe som for eksempel:

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

Når jeg klikker på Sett tilbehør (+), ikke tekstfeltet faktisk får plopped på skjermen, men ikke hvor nær cellen som er å klikke på det. Det går ut i en tilfeldig del av UIView, ikke selve cellen for indexPath på hvor + ble klikket på.

Innsikt i hvor jeg gikk galt og hvordan jeg kan plassere UITextField på cellen der + klikket ville være ideelt.

Publisert på 23/02/2009 klokken 21:42
kilden bruker
På andre språk...                            


1 svar

stemmer
1

Du setter rammen inputFieldtil rammen av cellen som ikke vil gjøre hva du vil. Visninger inne i cellen bruk den øvre venstre av rammen som 0,0. Din tekstfeltet ramme bør være:

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

Siden det er i forhold til det Super som vil plassere tekstfeltet slik at det den dekker opp de andre visningene i den cellen.

Svarte 23/02/2009 kl. 21:50
kilden bruker

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