2016-06-11 27 views
-1

我正在開發一個表視圖的應用程序(我設計的UITableView細胞筆尖)。一旦我向下滾動的tableview我的手機數據changing.Can請您指導me.Below我張貼我的代碼如何停止在自定義tableview單元格中交換數據?

靜態的NSString * simpleTableIdentifier = @ 「細胞」;

CusineTypeCell *cell = (CusineTypeCell *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier]; 
if (cell == nil) 
{ 
    NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"CusineTypeCell" owner:self options:nil]; 
    cell = [nib objectAtIndex:0]; 
} 


    [cell.userSelectedCusine setBackgroundImage:[UIImage imageNamed:@"checkbozempty"] forState:UIControlStateNormal]; 
    [cell.userSelectedCusine setBackgroundImage:[UIImage imageNamed:@"checkboxselect"] forState:UIControlStateSelected]; 
    [cell.userSelectedCusine addTarget:self action:@selector(checkboxSelected:) forControlEvents:UIControlEventTouchUpInside]; 
     cell.cusineName.text = [self.cusineFilterData objectAtIndex:indexPath.row]; 
    return cell; 

回答

0

請在您的數據源中添加一個鍵,通過設置值0/1來確定您是否選擇了該行。 像這樣

[self.cusineFilterData setValue:[NSNumber numberWithBool:NO] forKeyPath:@"isSelected"]; // It will add one key "isSelected" in all cusine filter data 

cellForRow檢查「isSelected」屬性的值,並基於該節目複選標記。

if([[[self.cusinrFilterData objectAtIndex:indexPath] objectForKey:@"isSelected"] boolValue]) 
{ 
    //show check mark 
    [cell.userSelectedCusine setBackgroundImage:[UIImage imageNamed:@"checkboxselect"] forState:UIControlStateSelected]; 
} 
else 
{ 
    //hide check mark 
    [cell.userSelectedCusine setBackgroundImage:[UIImage imageNamed:@"checkbozempty"] forState:UIControlStateNormal]; 

} 

didSelect請確保鍵值0到1和1到0基於行選擇。

if([[[self.cusinrFilterData objectAtIndex:indexPath] objectForKey:@"isSelected"] boolValue]) 
{ 

    [[[self.cusinrFilterData objectAtIndex:indexPath] setValue:[NSNumber numberWithBool:NO] forKey:@"isSelected"]; 
} 
else 
{ 
    [[[self.cusinrFilterData objectAtIndex:indexPath] setValue:[NSNumber numberWithBool:YES] forKey:@"isSelected"]; 
} 
+0

或者你可以使用NSIndexSet與行 – Paulw11

0

編輯

對不起,我誤解,你可以試試這個。

CusineTypeCell *cell = (CusineTypeCell *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier forIndexPath:indexPath]; 
+0

它不工作 – ram

相關問題