2014-02-08 4 views
1

У меня есть UITableView с пользовательской ячейкой. Внутри ячейки у меня есть UITextField с некоторым текстом-заполнителем. Я хотел бы установить placeholder из cellForRowAtIndexPath, но когда я попытаюсь установить его, заполнитель просто говорит (null). Кроме того, я хотел бы отформатировать заполнитель как таковой, «Период (номер ячейки находится в таблицеView)». Так что для ячейки, ближайшей к вершине таблицыView, она скажет «Период 1», вторая из верхней части скажет «Период 2». Я не могу понять, как сделать нумерацию или почему ячейка печатает нуль. Вот код -Настройка закладок UITextField в ячейке от cellForRowAtIndexPath

В пользовательской ячейке -

NSString *rowString = [NSString stringWithFormat:@"Period %@", self.rowNumber]; 
self.classText = [[UITextField alloc] init]; 
self.classText.delegate = self; 
self.classText.placeholder = rowString; 
self.classText.frame = CGRectMake(14, 3, 320, 40); 
self.classText.keyboardAppearance = UIKeyboardAppearanceDark; 
self.classText.font = [UIFont fontWithName:@"HelveticaNeue" size:17]; 
//[self.classText addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged]; 
[self addSubview:self.classText]; 

В cellForRowAtIndex Путь -

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

    SchoolCell *cell = nil; 
    static NSString *AutoCompleteRowIdentifier = @"AutoCompleteRowIdentifier"; 
    cell = [tableView dequeueReusableCellWithIdentifier:AutoCompleteRowIdentifier]; 
    if (cell == nil) { 
     cell = [[SchoolCell alloc] 
       initWithStyle:UITableViewCellStyleDefault reuseIdentifier:AutoCompleteRowIdentifier]; 
    } 
    cell.selectionStyle = UITableViewCellSelectionStyleNone; 
    cell.rowNumber = @"test"; 

    return cell; 
} 
+0

В какой функции вы создаете текстовое поле? У вас есть указанный код, но ссылки на него не указаны. – Putz1103

+0

В ячейке @ Putz1103 – matthew

ответ

0

Где в пользовательской ячейке вы размещая эти строки кода, которые инициализируют classText? Вероятно, вы устанавливаете rowNumber в методе cellForRowAtIndex после инициализации classText. Либо создайте собственный метод инициализации, который принимает параметр rowNumber в качестве параметра, либо создайте метод в rowString, который вы можете позже вызвать из cellForRowAtIndex после установки rowNumber и поместить в него код инициализации classText.

Смежные вопросы