我已經將UITextField放在每個UITableView單元上。在滾動UITableView單元格時,UITextField上的文本正在丟失。我能做些什麼來防止這種情況發生?通過放在UITableViewCell上的UITextField上的值正在丟失
2
A
回答
1
enter code here
你需要跟蹤存儲文本字段值的NSMutableArray。使初始值@「」。當您將文本字段插入單元格時,請將值設置爲數組中的相應值。
當文本框退出,就這樣出頭來存儲文本字段值的數組
-(BOOL)textFieldShouldReturn:(UITextField *)textField
{
UITableViewCell *cell=(UITableViewCell *)textField.superview;
NSIndexPath *indexPath = [table indexPathForCell:cell];
NSMutableArray *rows=[sectionArray objectAtIndex:[indexPath section]];
NSString *string=[rows objectAtIndex:indexPath.row];
string=textField.text;
[[sectionArray objectAtIndex:[indexPath section]]replaceObjectAtIndex:[indexPath row] withObject:string];
[textField resignFirstResponder];
return YES; }
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *myCellId= @"myDateCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:myCellId];
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
reuseIdentifier: myCellId];
CGRect textFieldFrame;
CGRect labelFrame;
labelFrame = CGRectMake(cell.frame.origin.x+45, cell.frame.origin.y+3, labelWidth, cell.bounds.size.height-5);
textFieldFrame = CGRectMake(cell.frame.origin.x+labelWidth+15, cell.frame.origin.y+12 ,cell.
UILabel *label = [[UILabel alloc]initWithFrame:labelFrame];
UITextField *textField = [[UITextField alloc]initWithFrame:textFieldFrame];
textField.keyboardType=UIKeyboardTypeNumberPad;
textField.delegate = self;
textField.text = [[sectionArray objectAtIndex:[indexPath section]]objectAtIndex:[indexPath row]];
[cell addSubview:label];
[cell addSubview:textField];
cell.selectionStyle = UITableViewCellSelectionStyleNone;
return cell;
}
0
這是因爲在您滾動時,tableview會動態創建並銷燬單元格以節省內存。如果你還沒有想出一種方法來解決這個問題,讓我知道,我會幫你找到解決方案
+0
沒有在,仍然沒有解決。 –
相關問題
- 1. ASP.NET Webforms上的Blackberry正在丟失SessionID
- 2. 在常規UIViewController上的UITableViewCell中的上方滾動UITextField
- 3. 通過XMPP在斷開設備上丟失的消息
- 4. 獲取UITableViewCell上的UITextField的引用?
- 5. Cookie在HttpWebRequest上丟失/丟失GetReponse
- 6. jQuery:輸入值在keyup上丟失?
- 7. RadioButtonList在按鈕上丟失值單擊
- 8. 數據丟失在UITableViewCell上時UITableView滾動?
- 9. 在Linux上丟失SFML/OpenGL.hpp
- 10. innodb_read_io_threads在MySQL 5.1.69上丟失
- 11. 在POST上丟失會話
- 12. 從MPRemoteCommandCenter丟失「正在播放」狀態
- 13. UITextField在UITableViewCell中無法正常工作
- 14. UITableViewCell裏面的UITextField不會在iPad上激活,但可以在iPhone上工作
- 15. UITableViewCell中的UITextField
- 16. UITableViewCell中的UITextField
- 17. UITableViewCell中的UITextField
- 18. UITableViewCell中的UITextField
- 19. Swift 3:TPKeyboardAvoidingScrollView無法在UITableViewCell中的一個UITextField上正常工作
- 20. 在iOS7中更改自定義UITableviewCell上的UITextfield寬度
- 21. 編輯UITableViewCell內的UITextField失敗
- 22. UITableView在UITableViewCell事件中丟失
- 23. UITableViewCell中的UITextField的正確用法
- 24. 通過點擊UITextField在ios上的應用程序崩潰
- 25. 文本框或上傳文件在回發上丟失值
- 26. 自定義UITableViewCell通過TableView滾動時丟失內容
- 27. 的UITableViewCell及的UITextField
- 28. 多個列上的SQL Server PIVOT正在丟失數據
- 29. 通過驗證不在重點丟失
- 30. UITableViewCell中的UITextField的原始值
感謝您的回答,但在輸入文本後調用此方法,但滾動後應該如何獲取先前輸入的值並在TextField中再次顯示該值? –
單元格製作完成後,它包含一個文本字段,並且該文本字段將從數組中正確的條目中預裝它的值。因此,只需找出表格中的單元格行並從該數組中取出該值(不要忘記在每個點上預先加載@「」作爲默認值。 – James
感謝James給我的寶貴回覆但是當滾動時,我應該如何知道可見文本字段的名稱而不點擊它 –