我試圖創建一個註冊表單,其中包含大約20個不同的字段分爲四個不同的部分。 我爲此創建了一個自定義單元格,它包含一個標籤和一個UITextField,並且我的桌面視圖上有一個字典數組,指示標籤的名稱應該是什麼,以及texftield的標籤(因爲根據標籤我使用UIPicker輸入數據)。自定義單元格textfield沒有保存在UITableView中的內存
的問題是,當我開始編輯的字段,向下滾動並備份一切變得一團糟,而改變的字段不應該......我碰到這顯然是發生了,因爲我所以我試圖創建一個新的單元格,但這是行不通的,因爲它只會初始化我需要的確切數量的單元格的tableview,而只是沒有內容的空單元格(標籤也不是textfield)裏面。
什麼是最簡單的方法,所以我可以保持我的細胞的每一個不同的內存引用,考慮的事實,我有當按下一個按鈕來檢索他們的價值觀?
我讀過this後的建議,但仍然沒有關於如何創建單元陣列想法。
任何幫助?
這是我的定義代碼:
NSArray *section1 = [[NSArray alloc] initWithObjects:
[NSDictionary dictionaryWithObjectsAndKeys:@"100",@"tag",@"Title",@"title",@"title",@"fieldName",nil],
[NSDictionary dictionaryWithObjectsAndKeys:@"0",@"tag",@"First Name",@"title",@"first_name",@"fieldName",nil],
[NSDictionary dictionaryWithObjectsAndKeys:@"0",@"tag",@"Last Name",@"title",@"last_name",@"fieldName",nil],
[NSDictionary dictionaryWithObjectsAndKeys:@"0",@"tag",@"Job Title",@"title",@"job_title",@"fieldName",nil],
[NSDictionary dictionaryWithObjectsAndKeys:@"0",@"tag",@"Email",@"title",@"email",@"fieldName",nil],
[NSDictionary dictionaryWithObjectsAndKeys:@"0",@"tag",@"Confirm Email",@"title",@"confirm_email",@"fieldName",nil],
[NSDictionary dictionaryWithObjectsAndKeys:@"0",@"tag",@"Password",@"title",@"password",@"fieldName",nil],
[NSDictionary dictionaryWithObjectsAndKeys:@"0",@"tag",@"Confirm Password",@"title",@"conf_password",@"fieldName",nil],
[NSDictionary dictionaryWithObjectsAndKeys:@"0",@"tag",@"Phone",@"title",@"phone",@"fieldName",nil],
nil];
....
self.formItems = [[NSArray alloc] initWithObjects:
section1,
section2,
section3,
section4,
section5,
nil];
然後我上的cellForRowAtIndexPath使用的代碼如下:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"freeTrialFormCell";
TSIFreeTrialFormCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[TSIFreeTrialFormCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
NSArray* sectionData = [self.formItems objectAtIndex:indexPath.section];
NSDictionary* myFieldInfo = [sectionData objectAtIndex:indexPath.row];
if ([[myFieldInfo objectForKey:@"fieldName"] rangeOfString:@"password"].location != NSNotFound) {
cell.textField.secureTextEntry = YES;
}
cell.fieldName = [myFieldInfo objectForKey:@"fieldName"];
cell.textField.placeholder = [myFieldInfo objectForKey:@"title"];
cell.textField.tag = [[myFieldInfo objectForKey:@"tag"] integerValue];
cell.label.text = [myFieldInfo objectForKey:@"title"];
return cell;
}
我忘了提及...我正在使用StoryBoarding。 –