我正在用標識符「TextCell」在故事板中構建自定義單元格。這是一個平面單元格,但是通過代碼我將每個單元格添加到一個文本字段,因爲我可以有一個「n」個單元格,以便用戶可以在每個單元格中插入文本。我的問題是,我創建的文本框似乎是在一個又一個地重複創建自己。我可以這樣說,因爲我有一個佔位符文本,它變得越來越黑暗。如何刷新iOS 5中的可重用單元格?
我也使用ARC。請任何你能提供給我的見解都能幫助我很多。
我附上我在哪裏添加文本框到細胞功能的代碼:
UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@"TextCell"];
//create text field inside cell and init it with the default settings
UITextField * textHolder = [[UITextField alloc] initWithFrame:CGRectMake(18, 10, 300, 44)];
[textHolder setPlaceholder:[cellsText objectAtIndex:indexPath.row]];
//[textHolder setValue:[UIColor blackColor] forKeyPath:@"_placeholderLabel.textColor"];
[textHolder setFont:[UIFont fontWithName:@"HelveticaNeue-Regular" size:16]];
[textHolder setTextColor:[UIColor blackColor]];
[textHolder setTextAlignment:UITextAlignmentLeft];
textHolder.tag = FIELD_PREFIX + indexPath.row;
[textHolder setDelegate:self];
[[NSBundle mainBundle] loadNibNamed:@"accessoryView" owner:self options:nil];
[textHolder setInputAccessoryView:accessoryView];
[cell addSubview:textHolder];
//set keyboard to type passwords
[textHolder setSecureTextEntry:YES];
你好,非常感謝你的幫助。 –
我想第一個選項,它看起來很不錯,但它創造了一些麻煩,因爲有故事板中的文本字段意味着它有一個靜態標籤,所以我無法獲得當前單元格的標籤的textfied當第一次響應者(這有助於我用鍵盤滾動)。 **第二**選擇它會更適合我,但因爲我使用ARC,所以我不清楚我如何刪除「舊」文本字段。如果你能幫助我,這將意味着很多。感謝您的所有幫助。 –
1:只要您使用「UITableViewCell」的自定義子類,就應該能夠將文本字段鏈接到「IBOutlet」。當您將該類設置爲表格視圖單元格的類時,您應該可以執行命令 - 將文本字段拖到.h文件以創建該屬性,不需要標籤。然後你可以通過你的子類的屬性來處理所有事情。 2:你需要通過子視圖找到'UITextField',並從超級視圖('removeFromSuperview')中刪除它。如果您沒有進一步參考文本字段,應該自動解除分配。 –