Как добавить текстовое поле в последней строке в таблице в iPhone? - PullRequest
0 голосов
/ 13 декабря 2011

когда я нажимаю новую кнопку, мне нужно добавить текстовое поле в последний ряд таблицы.

может любой объяснить поток.

Заранее спасибо.

Ответы [ 3 ]

1 голос
/ 13 марта 2012

Только что я попробовал этот сценарий.

Создайте одну булеву переменную, подобную этой BOOL newButtonPress = NO;

, затем выполните приведенный ниже код

-(IBAction)newButtonClicked:(id)sender{
if (self.newButtonPress == NO) {
//if new button press then newbuttpress is yes and reload the tableview
self.newButtonPress = YES;
[self .reloadTableview reloadData];
    }   
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
if(self.newButtonPress == YES)//creating noOfRows when newbutton pressed
{
    return [self.itemNames count]+1;
}
else {
    return [self.itemNames count]; 
   }
}

Затем добавьтеприведенный ниже код в метод cellForRowAtIndexPath

//when new button is pressed adding new cell
if (self.newButtonPress == YES) {
    if([self.itemNames count] == [indexPath row]){
        cell.selectionStyle = UITableViewCellSelectionStyleNone;
        //creating the textfield if new button is pressed 
        UITextField *extraField = [[UITextField alloc] initWithFrame:CGRectMake(80, 6, 100, 30)];
        extraField.borderStyle = UITextBorderStyleNone;
        extraField.textAlignment = UITextAlignmentCenter;
        [extraField becomeFirstResponder];
        [extraField setDelegate:self];
        [cell addSubview:extraField];
        [extraField release];
    }
}
0 голосов
/ 13 декабря 2011

Если вы просто хотите, чтобы текстовое поле появилось в конце таблицы, почему бы не рассмотреть возможность использования свойства tableFooterView UITableview?

В этом случае вам не нужно возвращать UITextField в методы делегата.

Вы почти сможете перетащить новый UITextField в свой TableView, если вы используете InterfaceBuilder или XCode 4.

0 голосов
/ 13 декабря 2011

Я очень новичок в кодировании iphone, хочу поделиться своими мыслями. Если это не так, пожалуйста, игнорируйте.

В cellForRowAtIndexPath метод вам нужно установить textfield в if(indexPath.row==numberOfRows-1) состояние. В методе нажатия кнопки вы можете установить textField.hidden=NO и в viewdidload textField.hidden=YES.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...