• 【原】自定义tableviewcell中多个button点击实现不同功能


    #import <UIKit/UIKit.h>
    
    @protocol TableCellDelegate <NSObject>
    
    - (void)choseTerm:(UIButton *)button;
    
    @end
    
    @interface TableViewCell : UITableViewCell
    
    @property (weak, nonatomic) IBOutlet UIButton *checkButton;
    @property (weak, nonatomic) IBOutlet UIButton *checkButton2;
    @property (weak, nonatomic) IBOutlet UILabel *label;
    
    @property (assign, nonatomic) BOOL  isChecked;
    @property (assign, nonatomic) id<TableCellDelegate> delegate;
    
    - (IBAction)checkAction:(UIButton *)sender;
    - (IBAction)checkAction2:(UIButton *)sender;
    

    .m文件

    #import "TableViewCell.h"
    
    @implementation TableViewCell
    
    - (void)awakeFromNib {
        // Initialization code
    }
    
    - (void)setSelected:(BOOL)selected animated:(BOOL)animated {
        [super setSelected:selected animated:animated];
    
        // Configure the view for the selected state
    }
    
    - (IBAction)checkAction:(UIButton *)sender {
        if ([_delegate respondsToSelector:@selector(choseTerm:)]) {
            sender.tag = self.checkButton.tag;
            NSLog(@"tag:%ld",self.checkButton.tag);
            [_delegate choseTerm:sender];
        }
    }
    
    - (IBAction)checkAction2:(UIButton *)sender {
        if ([_delegate respondsToSelector:@selector(choseTerm:)]) {
            sender.tag = self.checkButton2.tag;
            NSLog(@"tag2:%ld",self.checkButton2.tag);
            [_delegate choseTerm:sender];
        }
    }
    @end
    

     viewcontroller.m

    #import "ViewController.h"
    #import "TableViewCell.h"
    
    @interface ViewController ()<UITableViewDelegate, UITableViewDelegate, TableCellDelegate>
    
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        // Do any additional setup after loading the view, typically from a nib.
    }
    
    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
        return 5;
    }
    
    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
        static NSString *cellIdentifier = @"Cell";
        static BOOL nibsRegistered = NO;
        if (!nibsRegistered) {
            UINib *nib = [UINib nibWithNibName:@"TableViewCell" bundle:nil];
            [tableView registerNib:nib forCellReuseIdentifier:cellIdentifier];
            nibsRegistered = YES;
        }
        TableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
        cell.delegate = self;
        
        cell.checkButton.tag = indexPath.row*1000+1;
        cell.checkButton2.tag = indexPath.row*1000+2;
        NSLog(@"checkButton.tag:%ld;checkButton2.tag=%ld",cell.checkButton.tag,cell.checkButton2.tag);
        cell.label.text = [NSString stringWithFormat:@"%ld",(long)indexPath.row];
        return cell;
    }
    
    - (void)choseTerm:(UIButton *)button
    {
        _clickIndex = button.tag;
        if (_clickIndex%1000 == 1) {
            NSLog(@"第一列!");
            UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"确定修改学期吗?" message:nil delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"确定", nil,nil];
            [alertView show];
        }else {
            NSLog(@"第二列!");
        }
    }
    
    @end
    
  • 相关阅读:
    MongoDB 3.0安全权限访问控制(Windows版)
    MVC创建通用DropdownList
    当文字超出宽度,自动截取文字并加省略号
    JQuery Datatables(二)
    JQuery Datatables(一)
    PHP signal 信号
    phpunit 入门
    Wget 命令详解
    ubuntn下 apt的用法和yum的比较(转)
    navicat for mysql 安装
  • 原文地址:https://www.cnblogs.com/saurik/p/4896069.html
Copyright © 2020-2023  润新知