2017-09-06 73 views
1

我有自定義單元格的tableview。我在表格單元格中有textfield和image view。當用戶輸入一些字符時,應該根據用戶輸入驗證並更改圖像視圖。我的代碼,更改自定義表格單元中的imageview

- (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; 

當我進入文本字段的值,條件變細,但基於輸入圖像視圖不會得到更新。我正在爲cell.D獲得物品價值。我想念什麼?請幫我解決這個問題。 TIA。

+0

我建議你做你的tableview細胞作爲你的文本字段的委託,實施委託方法來定製tableviewcell類。然後根據需要改變圖像。 –

+0

你想更改所有'UITableViewCell'單元的圖像視圖嗎? –

回答

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; 
} 
相關問題