2017-07-07 70 views
-1
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 



static NSString *CellIdentifier = @"inventoryItem"; 


UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 



if (cell == nil) { 
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; 
    cell.textLabel.font = [UIFont systemFontOfSize:15]; 

} 



UILabel *name = (UILabel *)[cell viewWithTag:1]; 

name.text = [NSString stringWithFormat:@"%@",inventoryItems[indexPath.row][@"Inventory_Name"]]; 

NSLog(@"%@", name.text); 



cell.selectionStyle = UITableViewCellSelectionStyleNone; 
return cell; 

} 

我是Objective-C的初學者。我有一個名稱爲UITextField的定製UITableViewCellUITextField標記爲4.每次滾動時,UITextField中的值消失並出現在不同的單元格中。我明白,這是因爲dequeueReusableCellWithIdentifier,其中單元格被重用。我已經研究了一下,發現將UITextField s存儲在一個數組中,並將它們重新加載到cellForRowAtIndexPath中可能是最好的方法,但我在實現時遇到了問題。一個例子是理想的,或者一個簡單的方法來解決這個問題。謝謝。 enter image description hereUITextField值在滾動時消失並重新出現在其他UITableViewCell中

回答

0

每次調用cellForRowAtIndexPath:方法時,都會設置name UILabel。

我想知道/從inventoryItems[indexPath.row][@"Inventory_Name"]的價值是不是你所期望的?

而不是做的:

NSLog(@"%@", name.text); 

嘗試這樣做:

NSLog(@"%@ SHOULD EQUAL %@", inventoryItems[indexPath.row][@"Inventory_Name"], name.text); 

,看看他們總是匹配?我懷疑你有一些隱藏在那裏的「<null>」值。

+1

僅供參考 - 這是一個轉貼問題。我剛關閉它。你可能想發佈你的答案。 – rmaddy

相關問題