• TableView的复选功能


    #import "ViewController.h"
    
    @interface ViewController ()<UITableViewDataSource,UITableViewDelegate>
    
    @property (weak, nonatomic) IBOutlet UITableView *tableView;
    @property(nonatomic,strong)NSMutableArray *selectArr;
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad
    {
        [super viewDidLoad];
        _selectArr = [NSMutableArray arrayWithCapacity:0];
    }
    -(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
    {
        return 1;
    }
    -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
    {
        return 30;
    }
    -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    {
        static NSString *ID = @"FXCELLID";
        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ID];
        if (!cell)
        {
            cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:ID];
        }
        ((UILabel *)[cell viewWithTag:20]).text = [NSString stringWithFormat:@"第%ld行",indexPath.row+1];
        UIButton *button = (UIButton *)[cell viewWithTag:10];
        [button setImage:[UIImage imageNamed:@"checkbox_normal"] forState:UIControlStateNormal];
        
        [button addTarget:self action:@selector(cellButtonClick:forEvent:) forControlEvents:UIControlEventTouchUpInside];
        for (NSIndexPath *item in self.selectArr)
        {
            if (item.row == indexPath.row)
            {
                [button setImage:[UIImage imageNamed:@"checkbox_checked"] forState:UIControlStateNormal];
            }
        }
        return cell;
    }
    -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
    {
        UIAlertController * alertController = [UIAlertController alertControllerWithTitle:nil message:[NSString stringWithFormat:@"你选中的是第%ld行",indexPath.row+1] preferredStyle:UIAlertControllerStyleAlert];
        [alertController addAction:[UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
            NSLog(@"do anything you like");
        }]];
        [self presentViewController:alertController animated:YES completion:nil];
    }
    -(void)cellButtonClick:(UIButton *)sender forEvent:(UIEvent *)event
    {
        NSSet *touchs = [event allTouches];
        UITouch *touch = [touchs anyObject];
        CGPoint touchPoint = [touch locationInView:self.tableView];
        NSIndexPath *currentIndexPath = [self.tableView indexPathForRowAtPoint:touchPoint];
        if (![self.selectArr containsObject:currentIndexPath])
        {
            [self.selectArr addObject:currentIndexPath];
        }
        else
        {
            [self.selectArr removeObject:currentIndexPath];
        }
        [_tableView reloadRowsAtIndexPaths:@[currentIndexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
    }
    
    - (IBAction)selectAll:(UIButton *)sender
    {
        for (int i = 0; i < 30; i++)
        {
            NSIndexPath *indexPath = [NSIndexPath indexPathForItem:i inSection:0];
            [self.selectArr addObject:indexPath];
        }
        [_tableView reloadData];
    }
    - (IBAction)cleanUp:(UIButton *)sender
    {
        [self.selectArr removeAllObjects];
        [_tableView reloadData];
    }
    #import <UIKit/UIKit.h>
    
    @interface ViewController : UIViewController
    
    
    @end
  • 相关阅读:
    Linux下多线程查看工具(pstree、ps、pstack)
    linux的netstat命令详解
    linux的netstat命令详解
    实例解说Linux命令行uniq
    实例解说Linux命令行uniq
    实例解说Linux命令行uniq
    linux之sort用法
    linux之sort用法
    linux之sort用法
    oracle服务器和客户端字符集的查看和修改
  • 原文地址:https://www.cnblogs.com/Mgs1991/p/5138866.html
Copyright © 2020-2023  润新知