ios 關於UITableView UITableViewCellAccessoryCheckmark 混亂的問題

來源:互聯網
上載者:User

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;

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.