1. 程式人生 > >cell選中後進入重用池出來選中狀態消失

cell選中後進入重用池出來選中狀態消失

app sin rec ase ext multi ica lec dexp

開花結果樂園

cell選中後進入重用池出來選中狀態消

#import "ClickOnCellMultipleChoiceViewController.h"

@interface ClickOnCellMultipleChoiceViewController ()<UITableViewDelegate,UITableViewDataSource>

@property (nonatomic , strong) UITableView *tableView;




//定義一個數組來記錄cell的是否選中的狀態

@property (nonatomic, strong) NSMutableArray *arrCellSelect;

//cell的個數的數組

@property (nonatomic, strong) NSArray *arrCellCount;

@end

@implementation ClickOnCellMultipleChoiceViewController

- (void)viewDidLoad {
[super viewDidLoad];


[self creatTable];

[self dataHadel];


}



- (void)creatTable{

self.tableView = [[UITableView alloc]initWithFrame:[UIScreen mainScreen].bounds style:(UITableViewStylePlain)];

[self.view addSubview:self.tableView];

self.tableView.delegate = self;

self.tableView.dataSource = self;

}

//網絡請求

- (void)dataHadel{

//此處獲取cell的個數數組

self.arrCellCount = [NSArray array];

self.arrCellCount = @[@"0",@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9"];

//遍歷cell的個數,添加cell對應的選中狀態

_arrCellSelect = [NSMutableArray array];
for (int i =0 ; i< self.arrCellCount.count; i++) {

[_arrCellSelect addObject:@(NO)];//一開始cell為不選中

}


[self.tableView reloadData];

}



- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{

return 1;

}



- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{

return self.arrCellCount.count;

}



- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell"];

if (!cell) {

cell = [[UITableViewCell alloc]initWithStyle:(UITableViewCellStyleValue1) reuseIdentifier:@"cell"];

}

if ([[self.arrCellSelect objectAtIndex:indexPath.row] isEqual:@(NO)]) {

cell.detailTextLabel.text = @"我落選了";

}

else{

cell.detailTextLabel.text = @"我入選了";

}

cell.textLabel.text = self.arrCellCount[indexPath.row];



return cell;

}



- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{

UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];

NSIndexPath *indPath = [NSIndexPath indexPathForRow:indexPath.row inSection:indexPath.section];

if ([[_arrCellSelect objectAtIndex:indexPath.row] isEqual:@(NO)]) {

[_arrCellSelect replaceObjectAtIndex:indexPath.row withObject:@(YES)];

cell.detailTextLabel.text [email protected]"我入選了";



}

else{

[_arrCellSelect replaceObjectAtIndex:indexPath.row withObject:@(NO)];

cell.detailTextLabel.text = @"我落選了";

}

[self.tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:indPath] withRowAnimation:(UITableViewRowAnimationNone)];
[self.tableView reloadData];






}





- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}

/*
#pragma mark - Navigation

// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
// Get the new view controller using [segue destinationViewController].
// Pass the selected object to the new view controller.
}
*/

@end

cell選中後進入重用池出來選中狀態消失