我有一个带自定义单元格的UITableView。在单元格内部,我有一个带有一些占位符文本的UITextField。我想从cellForRowAtIndexPath设置占位符,但是当我尝试设置它时,占位符只是说(null)。另外,我想将占位符格式化为“Period(单元格在tableView中的数字)”所以对于最靠近tableView顶部的单元格,它会说“Period 1”,从顶部开始的第二个会说“第2期”。我无法弄清楚如何编号或单元格打印为空的原因。这是代码 -
在自定义单元格中 -
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 :(得分:0)
在自定义单元格中放置这些初始化classText的代码行?在初始化classText之后,您可能正在cellForRowAtIndex方法中设置rowNumber。创建一个接受rowNumber作为参数的自定义init方法,或者在rowString中创建一个方法,稍后可以在设置rowNumber之后从cellForRowAtIndex调用该方法,并将classText初始化代码放入其中。