这里使用block来进行,这种方法可以用在对一些文章展示的列表,或者歌曲,视频的列表的收藏功能
首先在cell中,定义一个block,和一个自定义的方法
typedef void(^buttonBlockCall)(HFMusicListItem *item,UIButton *btn);
//block属性
@property(nonatomic, copy)buttonBlockCall buttonBlock;
//自定义的方法
- (void)handlerButtonAction:(buttonBlockCall)block;
然后在cell的.m文件中监听按钮的点击
监听按钮的点击,按钮点击的时候将 模型 和 按钮 放到block中
- (IBAction)lovelyBtnClick:(UIButton *)sender {
sender.selected = !sender.selected;
if (self.buttonBlock) {
self.buttonBlock(self.item,self.lovelyBtn);
}
}
//实现自定义方法
- (void)handlerButtonAction:(buttonBlockCall)block {
self.buttonBlock = block;
}
回到控制器中,在tableView的代理方法 cellForRowAtIndexPath 中调用cell中自定义的方法
[listCell handlerButtonAction:^(HFMusicListItem *item,UIButton *btn){
在这里获取到 这行cell中的数据item 和 按钮
这里可以判断按钮的状态,获得按钮的tag
};
效果图: