• iOS


    #import <UIKit/UIKit.h>
    
    @interface TestCell : UITableViewCell
    @property(nonatomic,copy)NSString *content;
    /**
     *  标记行是否被选中
     */
    @property(nonatomic,assign)BOOL isChecked;
    @end
    #import "TestCell.h"
    @interface TestCell()
    @property (weak, nonatomic) IBOutlet UIImageView *mark_ImageView;
    @property (weak, nonatomic) IBOutlet UILabel *firstLabel;
    
    @end
    
    @implementation TestCell
    
    - (void)awakeFromNib
    {
        self.mark_ImageView.hidden = YES;
    }
    
    - (void)setSelected:(BOOL)selected animated:(BOOL)animated {
        [super setSelected:selected animated:animated];
    
       
    }
    -(void)setContent:(NSString *)content
    {
        if (_content!=content) {
            _firstLabel.text=content;
        }
    
    }
    /**
     *  这里只是用到了一张图所以通过来imageview的hidden来显示是否选中
     *
     *  @param isChecked
     */
    - (void)setIsChecked:(BOOL)isChecked
    {
        _isChecked = isChecked;
        //选中
        if (_isChecked) {
            self.mark_ImageView.hidden = NO;
            self.mark_ImageView.image = [UIImage imageNamed:@"mark_select"];
        }
        else
        {
            self.mark_ImageView.hidden = YES;
        }
    
    }
    
    @end
    
    
    
    
    #import "ViewController.h"
    #import "TestCell.h"
    @interface ViewController ()<UITableViewDataSource,UITableViewDelegate>
    
    {
       NSIndexPath *selectIndexPath;
    
    }
    
    @property(nonatomic,strong)NSMutableArray *dataArray;
    
    /**
     *  保存选中行的对应的数据
     */
    @property(nonatomic,strong)NSMutableArray *markArray;
    
    
    
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
      
        for (NSInteger i=0; i<20; i++) {
            [self.dataArray addObject:[NSString stringWithFormat:@"选中第%ld行",i]];
        }
        
        
        
        
        
    }
    
    - (NSMutableArray *)dataArray{
    
        if (!_dataArray) {
            _dataArray =[NSMutableArray array];
        }
        return _dataArray;
        
    }
    
    - (NSMutableArray *)markArray{
        
        if (!_markArray) {
            _markArray =[NSMutableArray array];
        }
        return _markArray;
        
    }
    
    
    
    -(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
    {
        return 1;
    }
    -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
    {
        return  self.dataArray.count;
    }
    static NSString *cellIdentifier = @"TestCell";
    -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    {
        
        TestCell *cell=[tableView dequeueReusableCellWithIdentifier:cellIdentifier forIndexPath:indexPath];
        cell.content= self.dataArray[indexPath.row];
        
        if (selectIndexPath==indexPath) {
            cell.isChecked = YES;
        }
        else{
            cell.isChecked = NO;
        }
        
        
        return cell;
    }
    -(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
    {
        return 44.0f;
    }
    
    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
    {
        //未选中
       TestCell *noCheckedCell = (TestCell *)[tableView cellForRowAtIndexPath:selectIndexPath];
         noCheckedCell.isChecked = NO;
        selectIndexPath = indexPath;
        
        //选中
        TestCell *checkedCell = (TestCell *)[tableView cellForRowAtIndexPath:indexPath];
        checkedCell.isChecked = YES;
        
        [tableView deselectRowAtIndexPath:indexPath animated:YES];
        //刷新指定的行
        NSIndexPath *indexPath_Row=[NSIndexPath indexPathForRow:indexPath.row inSection:0];
        [tableView reloadRowsAtIndexPaths:[NSArray arrayWithObjects:indexPath_Row,nil] withRowAnimation:UITableViewRowAnimationNone];
       
        NSString *checkString  = self.dataArray[indexPath.row];
        if ([self.markArray containsObject:checkString]) {
             [self.markArray removeObject:checkString];
        }
        else{
            [self.markArray removeAllObjects];
            [self.markArray addObject:checkString];
        }
        
        NSLog(@"self.checkArray =%@",self.markArray);
        
        
        
    }
    

      

  • 相关阅读:
    Lua笔记——8.Lua & C
    Shader笔记——5.渲染纹理
    常用工具——2.Mac
    Shader笔记——4.纹理基础
    设计模式学习笔记四:简单工厂模式抽象工厂模式工厂方法模式
    设计模式学习笔记三:策略模式和状态模式
    设计模式学习笔记二:单例模式
    设计模式学习笔记一:程序设计原则
    数据结构和算法学习笔记十六:红黑树
    数据结构和算法学习笔记十五:多路查找树(B树)
  • 原文地址:https://www.cnblogs.com/thbbsky/p/5811126.html
Copyright © 2020-2023  润新知