我有自定义单元格的tableview。我在表格单元格中有文本字段和图像视图。当用户输入一些字符时,它应该根据用户输入验证并更改图像视图。我的代码,
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *cellIdentifier = @"newsTableCell";
cell = (NewsTableViewCell *)[tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if (cell == nil) {
cell = [[NewsTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
}
cell.answerTextfield.delegate = self;
if (indexPath.row == 0) {
cell.newsTitleLabel.text = @"News 1";
cell.lengthImageView.tag = 300;
}
else if (indexPath.row == 1) {
cell.newsTitleLabel.text = @"News 2";
cell.lengthImageView.tag = 301;
}
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
if([NewsValidation charactersInString:string checkFor:@"ValidationString"]) {
if ([string length] + [textField.text length] > 1 && [textField.text length] < 36) {
cell.lengthImageView.image = [UIImage imageNamed:@"Right.png"];
return YES;
}
} else {
cell.lengthImageView.image = [UIImage imageNamed:@"Wrong.png"];
return NO;
}
return YES;
}
NewsTableViewCell.h
@interface NewsTableViewCell : UITableViewCell {
IBOutlet UIImageView *lengthImageView;
}
@property (nonatomic, retain)IBOutlet UIImageView *lengthImageView;
当在文本字段中输入值时,条件会很好但图像视图不会根据输入进行更新。我得到了细胞的对象价值。我想念一些东西吗?请帮我解决这个问题。 TIA。
答案 0 :(得分:1)
您可以获取所需行的单元格
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:4 inSection:0];
NewsTableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
if([NewsValidation charactersInString:string checkFor:@"ValidationString"]) {
if ([string length] + [textField.text length] > 1 && [textField.text length] < 36) {
cell.lengthImageView.image = [UIImage imageNamed:@"Right.png"];
return YES;
}
} else {
cell.lengthImageView.image = [UIImage imageNamed:@"Wrong.png"];
return NO;
}
return YES;
}
答案 1 :(得分:0)
在文本字段中输入文本时尝试重新加载表格视图单元格。