你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> ios 關於UITableView UITableViewCellAccessoryCheckmark 混亂的問題

ios 關於UITableView UITableViewCellAccessoryCheckmark 混亂的問題

編輯:IOS開發綜合

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellStr];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellStr];
    }

 

 

可在單擊記錄的方法裡記錄下選擇的記錄:

 

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {//table單擊事件
    UITableViewCell *cell = [tableView cellForRowAtIndexPath: indexPath];
    NSString *str=cell.textLabel.text;
    NSDictionary *dict=[self getOneDictByName:str];
    if([self isExistsByName:str theArray:selectedData]){
        [self removeOneFromArrayByName:str theArray:selectedData];
    }else{
        [selectedData addObject:dict];
    }
    [tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];

}

代碼中的selectedData是一個NSMutableArray。

然後在cellForRowAtIndexPath方法裡限定cell的accessoryType值。

-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    static NSString *cellStr= @"cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellStr];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellStr];
    }
    NSArray *keys=[tempResult allKeys];
    NSArray *dicts= [tempResult valueForKey:[keys objectAtIndex:indexPath.section]];
    NSDictionary *temp=[dicts objectAtIndex:indexPath.row];
    cell.textLabel.text=[temp valueForKey:@"name"];
    if([selectedData containsObject:temp]){
        cell.accessoryType=UITableViewCellAccessoryCheckmark;
    }else{
        cell.accessoryType=UITableViewCellAccessoryNone;
    }
    return cell;
}

上面的if  else  要完整。

其實思想就是MVC,視圖只是用來展示,到底展示什麼取決於model;

 

 

 

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved